tmpjWNuGb/0000700000175000017500000000000012262230550012570 5ustar mathieumathieutmpjWNuGb/package.xml0000644000175000017500000110737412233761325014743 0ustar mathieumathieu horde pear.horde.org Horde Application Framework The Horde Application Framework is a flexible, modular, general-purpose web application framework written in PHP. It provides an extensive array of components that are targeted at the common problems and tasks involved in developing modern web applications. It is the basis for a large number of production-level web applications, notably the Horde Groupware suites. For more information on Horde or the Horde Groupware suites, visit http://www.horde.org. Chuck Hagenbuch chuck chuck@horde.org yes Jan Schneider jan jan@horde.org yes Michael Slusarz slusarz slusarz@horde.org yes Michael J Rubinsky mrubinsk mrubinsk@horde.org yes 2013-10-29 5.1.5 5.0.0 stable stable LGPL-2 * [jan] SECURITY: Protect against CSRF attacks on share permissions form (Bug #12804). * [jan] SECURITY: Fix XSS vulnerabilities in top and left menu (Bug #12803). * [jan] Don't show admin alarm form if alarms are disabled. * [mms] Add horde-remove-user-data command-line script. * [mms] Add additional syntax checking for the configuration files in the test script. * [mms] Only update topbar if the underlying tree data has changed. 5.3.0 1.7.0 Horde_Alarm pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Argv pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Auth pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Autoloader pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Browser pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Core pear.horde.org 2.10.0 3.0.0alpha1 3.0.0alpha1 Horde_Date pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Exception pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Form pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Group pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Http pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Image pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_LoginTasks pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Mail pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Mime pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Nls pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Perms pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Prefs pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Rpc pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Serialize pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Support pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Text_Diff pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Token pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Text_Filter pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Tree pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Url pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Util pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_View pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Vfs pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 filter gettext hash Net_DNS2 pear.php.net Services_Weather pear.php.net Horde_ActiveSync pear.horde.org 2.6.2 3.0.0alpha1 3.0.0alpha1 Horde_Db pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Feed pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Oauth pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Service_Facebook pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Service_Twitter pear.horde.org 2.1.0 3.0.0alpha1 3.0.0alpha1 Horde_Service_Weather pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_SyncMl pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Console_Getopt pear.php.net Console_Table pear.php.net File_Find pear.php.net File_Fstab pear.php.net iconv horde Role pear.horde.org 4.0.0alpha1 4.0.0 alpha alpha 2011-03-09 LGPL-2 * First alpha release for Horde 4. 4.0.0beta1 4.0.0 beta beta 2011-03-16 LGPL-2 * Fix updating schema for individual libraries. * Improved control over which application view to load. * Fix viewing applications with no mobile view from mobile devices. 4.0.0RC1 4.0.0 beta beta 2011-03-23 LGPL-2 * First release candidate for Horde 4. * [gwr] Allow disabling applications for administrators. 4.0.0RC2 4.0.0 beta beta 2011-03-29 LGPL-2 * [jan] Rename all scripts in bin/ to be prefixed with horde- and installed in bin_dir (Request #9647). * [jan] Fire access keys on hidden elements in Internet Explorer (Bug #8057). * [jan] Don't fire access keys twice in Chrome browsers. * [jan] Fix JavaScript date calculations across DST boundaries. 4.0.0 4.0.0 stable stable 2011-04-06 LGPL-2 * [mms] Add pushapp_post hook. * [jan] Fix application-specific permission checks (Bug #9786). * [jan] Fix resetting passwords (Vilius Sumskas <vilius@lnk.lt>, Bug #9800). * [jan] Delete object mappings too when deleting SyncML anchors (Request #9377). * [jan] Move all executable upgrade scripts to bin/ and prefix with horde-. * [mjr] Fix ActiveSync provisioning. 4.0.1 4.0.0 stable stable 2011-04-20 LGPL-2 * [jan] Fix LDAP parameters of account portal block (Klaus Steinberger, Bug #9770). * [mjr] Fix some display issues when geocoding with HordeMap (Bug #9883). * [mms] Don't load sidebar content if not expanded. * [jan] Fix deleting groups. * [jan] Fix adding new groups (Bug #9881). * [jan] Fix displaying the Facebook preference group. * [mms] Add appinitialized hook. 4.0.2 4.0.0 stable stable 2011-05-03 LGPL-2 * [mms] Fix authentication failure when TOS is not accepted. * [jan] Fix adding categories. * [jan] Don't check for outdated DB schemas if database support is disabled (Bug #9986). 4.0.3 4.0.0 stable stable 2011-05-18 LGPL-2 * [mms] Fix return link after reporting problem (Bug #10069). * [jan] Add button to update all configurations with default values at once. * [jan] Update DataTree conversion scripts for Horde 4. * [jan] Fix rendering of DataTree browse tree. * [mjr] Fix issue causing credentials to be lost when accessing the API during ActiveSync requests (Bug #9733). 4.0.4 4.0.0 stable stable 2011-06-01 LGPL-2 * [mms] Fix colorpicker on categories preferences screen (Bug #10118). * [mjr] Fix Metar portal block. * [gwr] Added support for the Kolab IMAP based preferences backend. 4.0.5 4.0.0 stable stable 2011-06-01 LGPL-2 * [jan] Remove debug code. 4.0.6 4.0.0 stable stable 2011-06-14 LGPL-2 * [jan] Fix extracting of translation strings in a release. * [rla] Enable giving users specific admin permissions (Enhancement #9350) * [jan] Don't strip domain from user name in account block. * [jan] Fix account block with empty configuration parameters. 4.0.7 4.0.0 stable stable 2011-07-05 LGPL-2 * [jan] Don't use CSS cache in mobile interfaces because it breaks jQuery Mobile CSS. * [jan] Allow configuration of split read databases for PostgreSQL (Request #7025). * [mjr] Honor initial_application setting for mobile view (Bug #10264). * [gwr] Support restricting the HTML tidy post processing by the message size (Request #10266). * [gwr] Disabled the timeout on the logout token. 4.0.8 4.0.0 stable stable 2011-08-02 LGPL-2 * [cjh] Add mobile maintenance screens. * [jan] Update Latvian translation. * [jan] Don't show mobile login page if users are forced to traditional or dynamic views (Request #10358). * [jan] Update PGP key server list and add SKS pool. 4.0.9 4.0.0 stable stable 2011-08-31 LGPL-2 * [rla] Add account locking similar to the former kolab-specific option. * [jan] Add missing configuration for LDAP groups write support. * [rla] Reset password dialog shows a warning when no security question is set (Request #10430). * [mjr] Update jQuery Mobile to version 1.0 Beta 2. * [jan] Update hordeweb theme to match new website layout. 4.0.10 4.0.0 stable stable 2011-10-11 LGPL-2 * [mjr] Update javascript map library. * [mms] Allow in-page base64 image encoding to be disabled via configuration. * [jan] Add administration page to list and clear locks. 4.0.11 4.0.0 stable stable 2011-11-02 LGPL-2 * [cjh] Add Hordevetica theme. * [mjr] Fix issue with ajax uploader and file sizes over 1mb (Bug #10641). * [mjr] Do not show results in the tag cloud block owned by other users. 4.0.12 4.0.0 stable stable 2011-11-22 LGPL-2 * [mjr] Replace Weatherdotcom portal block with generic Weather block supported by Horde_Service_Weather. * [jan] Add configuration option to disable password resets (Request #10640). 4.0.13 4.0.0 stable stable 2011-12-13 LGPL-2 * [jan] Make the lifetime of cached weather information configurable (Arjen de Korte, Request #10848). * [jan] Update Dutch translation (Arjen de Korte <build+horde@de-korte.org>). * [mjr] Improve layout of weather block. * [jan] Update Japanese translation (Hiromi Kimura <hiromi@tac.tsukuba.ac.jp>). 4.0.14 4.0.0 stable stable 2012-02-28 LGPL-2 * [mjr] Added more atomic control over ActiveSync security policies for better device compatibility. * [mms] Add 'sendmail_eol' configuration parameter. * [jan] Fix horde-set-perms (piper@hrz.uni-marburg.de, Bug #10923). * [jan] Sort user and group names in permission screen (Request #10896). 4.0.15 4.0.0 stable stable 2012-05-29 LGPL-2 * [jan] Update Swedish translation (Jakob Alvermark <jakob.alvermark@bsdlabs.com>). * [jan] Update Italian translation (Emilien <emilien@wifi.e4a.it>). * [jan] Update Lybian flag (Request #11169). * [jan] Update Slovak translation (Marika Schvarczova <schvarczova.marika@domeny.sk>). * [jan] Update Czech translation (Michal Foist <michal@foist.cz>). * [jan] Update Hungarian translation (Zoltán Németh <nemeth.zoltan@etit.hu>). * [jan] Fix horde-set-perms script (Arjen de Korte, Bug #11048). 4.0.16 4.0.0 stable stable 2012-05-29 LGPL-2 * [jan] Fix adding attachments to problem tickets (Bug #10654). * [jan] Update Turkish translation (İstanbul Technical University). * [jan] Fix setting permissions on static/ directory with horde-set-perms (Bug #11219). 2012-07-06 5.0.0alpha1 5.0.0alpha1 alpha alpha LGPL-2 * First alpha release for Horde 5. * [jan] Implement new user interface. * [mms] Add 'suppress' option to prefs.php group entries. * [mms] Add 'on_change', 'on_init', 'requires', 'requires_nolock', and 'suppress' options to prefs.php preference entries. * [mms] Remove support for IE 6. * [mms] Token protect all AJAX actions. * [jan] Allow to use IMAP storage for shares and groupware data without a complete Kolab server. * [mms] Implement growler-like notifications for smartmobile view. * [mms] Modified pushapp hook behavior. * [mms] Removed pushapp_post hook. * [mms] AJAX core features now contained within Horde_Core. * [mms] E-mail sending charset now defaults to UTF-8. * [mms] Add post-install script for the Horde application * [mms] Portal blocks can now load just the CSS necessary to display an application's blocks. * [jan] Show notifications during logging into Smartphone mode. 5.0.0beta1 5.0.0beta1 beta beta 2012-07-20 LGPL-2 * [jan] Remove DataTree support. * [jan] Allow to configure encryption in global IMAP configuration (Request #11272). * [jan] Update icon set. * [rla] Retrieve more detailed message from Horde_Auth when a user is temporarily or permanently locked out (Request #11254). 5.0.0beta2 5.0.0beta1 beta beta 2012-07-21 LGPL-2 * [mjr] Request SSL connection from map providers if using SSL (Bug #11193). * [jan] Remove optional dependency on Horde_DataTree. 5.0.0beta3 5.0.0beta1 beta beta 2012-07-22 LGPL-2 * [jan] Fix dependency on Horde_Service_Weather. 5.0.0beta4 5.0.0beta1 beta beta 2012-08-07 LGPL-2 * [jan] Fix logging in without JavaScript (Bug #11328). * [mms] Fix sidebar element wrapping. * [mms] Better handling of backend authentication errors when returning AJAX data (Bug #11297). 5.0.0beta5 5.0.0beta1 beta beta 2012-08-29 LGPL-2 * [jan] Fix cancelling problem report. * [jan] Fix audio notification path printed in page output. 5.0.0beta6 5.0.0beta1 beta beta 2012-10-12 LGPL-2 * [mms] Show non-javascript enhanced login screen for non-smartmobile mobile browsers (Bug #11215). * [mms] Add version parameter to CSS/javascript file URLs to help with cache busting when these files change between releases. * [mms] Add configuration option for maximum allowed session times. 5.0.0RC1 5.0.0beta1 beta beta 2012-10-26 LGPL-2 * [jan] Port VAT identification block to use SOAP extension. * [jan] Fix dynamic updating of portal blocks. * [mms] Allow view-specific help files to inherit from base application help file. * [mms] Allow application basic/dynamic views to have different help source files. 5.0.0 5.0.0 stable stable 2012-10-30 LGPL-2 * [jan] Update Polish translation (Krzysztof Kozera <krzysztof113@o2.pl>). * [jan] Update Dutch translation (Arjen de Korte <arjen+horde@de-korte.org>). 5.0.1 5.0.0 stable stable 2012-11-07 LGPL-2 * [jan] Fix form for editing and removing of users. * [mjr] Workaround for broken iOS ActiveSync AUTODISCOVER requests (Bug #11624). * [jan] Update Slovak translation (Jozef Sudolský <jozef.sudolsky@elbia.sk>). * [mms] Fix topbar javascript on IE8 (Bug #11614). * [jan] Fix LDAP example for authusername hook. 5.0.2 5.0.0 stable stable 2012-11-14 LGPL-2 * [jan] Fix adding user in admin actions (Bug #11690). * [mms] Fix removing user in admin actions (Bug #11690). * [jan] Allow to set custom search field label. 5.0.3 5.0.0 stable stable 2013-01-10 LGPL-2 * [jan] Fix setting menu refresh rate to none (Bug #11867). * [jan] Update Basque translation (Ibon Igartua <ibon.igartua@ehu.es>). * [jan] Fix JavaScript errors after updating the top menu. 5.0.4 5.0.0 stable stable 2013-02-12 LGPL-2 * [jan] Update French translation (Paul De Vlieger <paul.de_vlieger@moniut.univ-bpclermont.fr>). 5.0.5 5.0.0 stable stable 2013-05-29 LGPL-2 * [jan] Fix changing expired passwords. * [jan] Fix form to reset passwords. * [mms] SECURITY: Fix XSS vulnerability on smartmobile portal page (João Machado <geral@jpaulo.eu>). * [mjr] Fix displaying activesync devices when a username hook is being used (Bug #12186). * [jan] Hide navigation elements from print layout (Bug #12163). * [cjh] Add support for New Relic real-user monitoring (RUM) if New Relic is installed. * [mms] Login screen now hides the mode input if javascript is not available, as minimal view is the only supported mode (Request #12093). * [jan] Fix searching from topbar if search URL contains parameters. 2013-05-07 5.1.0beta1 5.0.0 beta stable LGPL-2 * [mms] Add ability to update/create NoSQL indices from the admin config page. * [mjr] Add activesync device hooks. * [mms] Add a global default NoSQL driver configuration. * [mms] Allow MongoDB to be used as a cache backend. * [jan] Check all installed PEAR packages when checking for updates. * [mms] Add 'ajaxaction_data' hook. 5.1.0beta2 5.0.0 beta stable 2013-05-14 LGPL-2 * [mms] Add configuration of the Horde_HashTable package. * [jan] Fix incorrect dependencies. 5.1.0beta3 5.0.0 beta stable 2013-05-14 LGPL-2 * [jan] Fix broken configuration definition. 5.1.0RC1 5.0.0 beta stable 2013-05-29 LGPL-2 * [mms] Add 'ajaxaction_handle' hook and deprecate 'ajaxaction' hook. * [mms] Add configuration option to configure the e-mail address reset password confirmation messages should be sent from. * [mms] Treat an AJAX session token failure as a session timeout. 5.1.0 5.0.0 stable stable 2013-06-04 LGPL-2 * Final release. 5.1.1 5.0.0 stable stable 2013-06-18 LGPL-2 * [mjr] Update Twitter block layout to honor Twitter's API version 1.1 display requirements, and add support for updating favorites. 5.1.2 5.0.0 stable stable 2013-07-16 LGPL-2 * [jan] Set Basic Authentication HTTP headers if running PHP as CGI. * [jan] Return to original URL after logging in. * [jan] Fix login icon. * [jan] Enable Turkish translation on PHP 5.5. * [rla] Add a cli script for running queue tasks. * [jan] Create parent permissions too if automatically creating permissions (Bug #11689). 5.1.3 5.0.0 stable stable 2013-08-27 LGPL-2 * [mjr] Fix issue displaying ActiveSync pref page when it contains a wiped device entry. * [mms] Allow non-authenticated AJAX actions to be defined. * [mms] Improved session administration UI (Request #12515). * [jan] Make "Others" and cogwheel menu entry available on iOS (Bug #11937). 5.1.4 5.0.0 stable stable 2013-09-03 LGPL-2 * [mjr] Fix detecting ActiveSync policies for EAS version 12.0. * [jan] Fix fatal error on ActiveSync preferences page (Bug #12631). 5.1.5 5.0.0 stable stable 2013-10-29 LGPL-2 * [jan] SECURITY: Protect against CSRF attacks on share permissions form (Bug #12804). * [jan] SECURITY: Fix XSS vulnerabilities in top and left menu (Bug #12803). * [jan] Don't show admin alarm form if alarms are disabled. * [mms] Add horde-remove-user-data command-line script. * [mms] Add additional syntax checking for the configuration files in the test script. * [mms] Only update topbar if the underlying tree data has changed. tmpjWNuGb/horde-5.1.5/0000755000175000017500000000000012262230550014347 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/README0000644000175000017500000000643312233761325015244 0ustar mathieumathieu================ What is Horde? ================ :Contact: horde@lists.horde.org .. contents:: Contents .. section-numbering:: Horde LLC is a group of developers who write web applications using the Horde Application Framework, itself a product of the project. The Horde Application Framework is a flexible, modular, general-purpose web application framework written in PHP. It provides an extensive array of components that are targeted at the common problems and tasks involved in developing modern web applications: libraries for dealing with preferences, compression, browser detection, connection tracking, MIME, and more. The Horde Framework, by itself, does not provide any significant end user functionality; it provides a base for other applications and tools for developers. You will probably want to install some of the available Horde applications, such as IMP (a webmail client), or Kronolith (a calendar). There is a list of Horde applications and projects at http://www.horde.org/apps. This software is OSI Certified Open Source Software. OSI Certified is a certification mark of the `Open Source Initiative`_. .. _`Open Source Initiative`: http://www.opensource.org/ Obtaining Horde =============== Further information on Horde and the latest version can be obtained at http://www.horde.org/apps/horde Information on applications that use the Horde framework can be found at http://www.horde.org/apps Documentation ============= The following documentation is available in the Horde distribution: :README_: This file :COPYING_: Copyright and license information :`docs/CHANGES`_: Changes by release :`docs/CODING_STANDARDS`_: Coding standards for Horde projects :`docs/CONTRIBUTING`_: How to contribute to Horde :`docs/CREDITS`_: Project developers :`docs/INSTALL`_: Installation instructions and notes :`docs/PERFORMANCE`_: Performance guide :`docs/RELEASE`_: Release process notes :`docs/SECURITY`_: Security notes :`docs/UPGRADING`_: Pointers on upgrading from previous Horde versions Installation ============ Instructions for installing Horde can be found in the file INSTALL_ in the ``docs/`` directory of the Horde distribution. Assistance ========== If you encounter problems with Horde, help is available! The Horde Frequently Asked Questions List (FAQ), available on the Web at http://wiki.horde.org/FAQ Horde LLC runs a number of mailing lists, for individual applications and for issues relating to the project as a whole. Information, archives, and subscription information can be found at http://www.horde.org/community/mail Lastly, Horde developers, contributors and users also make occasional appearances on IRC, on the channel #horde on the Freenode Network (irc.freenode.net). Licensing ========= For licensing and copyright information, please see the file COPYING_ in the Horde distribution. Thanks, The Horde team .. _README: README .. _COPYING: http://www.horde.org/licenses/lgpl .. _docs/CHANGES: CHANGES .. _docs/CODING_STANDARDS: CODING_STANDARDS .. _docs/CONTRIBUTING: CONTRIBUTING .. _docs/CREDITS: CREDITS .. _INSTALL: .. _docs/INSTALL: INSTALL .. _docs/PERFORMANCE: PERFORMANCE .. _docs/RELEASE: RELEASE .. _docs/SECURITY: SECURITY .. _docs/UPGRADING: UPGRADING tmpjWNuGb/horde-5.1.5/login.php0000644000175000017500000003117212233761325016203 0ustar mathieumathieu * @author Michael Slusarz * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ /* Add anchor to outgoing URL. */ function _addAnchor($url, $type, $vars, $url_anchor = null) { switch ($type) { case 'param': if (!is_null($url_anchor)) { $url->anchor = $url_anchor; } break; case 'url': $anchor = $vars->anchor_string; if (!empty($anchor)) { $url->setAnchor($anchor); } else { return _addAnchor($url, 'param', $vars, $url_anchor); } break; } return $url; } /* Try to login - if we are doing auth to an app, we need to auth to * Horde first or else we will lose the session. Ignore any auth errors. * Transparent authentication is handled by the Horde_Application:: * constructor. */ require_once __DIR__ . '/lib/Application.php'; try { Horde_Registry::appInit('horde', array( 'authentication' => 'none', 'nologintasks' => true )); } catch (Horde_Exception_AuthenticationFailure $e) {} $is_auth = $registry->isAuthenticated(); $vars = $injector->getInstance('Horde_Variables'); /* This ensures index.php doesn't pick up the 'url' parameter. */ $horde_login_url = ''; /* Get an Auth object. */ $auth = $injector->getInstance('Horde_Core_Factory_Auth')->create(($is_auth && $vars->app) ? $vars->app : null); /* Get URL/Anchor strings now. */ if ($vars->url) { $url_in = new Horde_Url($vars->url); $url_anchor = $url_in->anchor; $url_in->anchor = null; } else { $url_anchor = $url_in = null; } if (!($logout_reason = $auth->getError())) { $logout_reason = $vars->logout_reason; } switch ($logout_reason) { case Horde_Core_Auth_Application::REASON_SESSIONIP: case Horde_Core_Auth_Application::REASON_BROWSER: case Horde_Auth::REASON_LOGOUT: /* Don't show these logout reasons more than once. */ if (!$registry->getAuth()) { $logout_reason = null; } break; case Horde_Core_Auth_Application::REASON_SESSIONMAXTIME: $is_auth = false; break; } /* Change language. */ if (!$is_auth && !$prefs->isLocked('language') && $vars->new_lang) { $registry->setLanguageEnvironment($vars->new_lang); } if ($logout_reason) { if ($is_auth) { try { $session->checkToken($vars->horde_logout_token); } catch (Horde_Exception $e) { $notification->push($e, 'horde.error'); require HORDE_BASE . '/index.php'; exit; } $is_auth = null; } $entry = sprintf('User %s [%s] logged out of Horde', $registry->getAuth(), $_SERVER['REMOTE_ADDR']); Horde::logMessage($entry, 'NOTICE'); $registry->clearAuth(); /* Reset notification handler now, since it may still be using a status * handler that is no longer valid. */ $notification->detach('status'); $notification->attach('status'); /* Redirect the user on logout if redirection is enabled and this is an * an intended logout. */ if (($logout_reason == Horde_Auth::REASON_LOGOUT) && !empty($conf['auth']['redirect_on_logout'])) { $logout_url = new Horde_Url($conf['auth']['redirect_on_logout'], true); if (!isset($_COOKIE[session_name()])) { $logout_url->add(session_name(), session_id()); } _addAnchor($logout_url, 'url', $vars, $url_anchor)->redirect(); } $session->setup(); /* Explicitly set language in un-authenticated session. */ $registry->setLanguage($GLOBALS['language']); } elseif (Horde_Util::getPost('login_post') || Horde_Util::getPost('login_button')) { $select_view = Horde_Util::getPost('horde_select_view'); if ($select_view == 'mobile_nojs') { $nojs = true; $select_view = 'mobile'; } else { $nojs = false; } /* Get the login params from the login screen. */ $auth_params = array( 'password' => Horde_Util::getPost('horde_pass'), 'mode' => $select_view ); try { $result = $auth->getLoginParams(); foreach (array_keys($result['params']) as $val) { $auth_params[$val] = Horde_Util::getPost($val); } } catch (Horde_Exception $e) {} if ($auth->authenticate(Horde_Util::getPost('horde_user'), $auth_params)) { $entry = sprintf('Login success for %s [%s] to %s.', $registry->getAuth(), $_SERVER['REMOTE_ADDR'], ($vars->app && $is_auth) ? $vars->app : 'horde'); Horde::logMessage($entry, 'NOTICE'); if (!$is_auth && $nojs) { $notification->push(_("JavaScript is either disabled or not available on your browser. You are restricted to the minimal view.")); } if (!empty($url_in)) { /* $horde_login_url is used by horde/index.php to redirect to URL * without the need to redirect to horde/index.php also. */ $horde_login_url = Horde::url(_addAnchor($url_in->remove(session_name()), 'url', $vars), true); } /* Do password change request on initial login only. */ if (!$is_auth && $registry->passwordChangeRequested()) { $notification->push(_("Your password has expired."), 'horde.message'); if ($auth->hasCapability('update')) { Horde::url('services/changepassword.php')->redirect(); } } require HORDE_BASE . '/index.php'; exit; } $logout_reason = $auth->getError(); $entry = sprintf('FAILED LOGIN for %s [%s] to Horde', $vars->horde_user, $_SERVER['REMOTE_ADDR']); Horde::logMessage($entry, 'ERR'); } /* Build the list of necessary login parameters. * Need to wait until after we set language to get login parameters. */ $loginparams = array( 'horde_user' => array( 'label' => _("Username"), 'type' => 'text', 'value' => $vars->horde_user ), 'horde_pass' => array( 'label' => _("Password"), 'type' => 'password' ) ); $js_code = array( 'HordeLogin.user_error' => _("Please enter a username."), 'HordeLogin.pass_error' => _("Please enter a password.") ); $js_files = array( array('login.js', 'horde') ); if (!empty($GLOBALS['conf']['user']['select_view'])) { $js_code['HordeLogin.pre_sel'] = $vars->get('horde_select_view', isset($_COOKIE['default_horde_view']) ? $_COOKIE['default_horde_view'] : 'auto'); $loginparams['horde_select_view'] = array( 'type' => 'horde_select_view' ); } try { $result = $auth->getLoginParams(); $loginparams = array_filter(array_merge($loginparams, $result['params'])); $js_code = array_merge($js_code, $result['js_code']); $js_files = array_merge($js_files, $result['js_files']); } catch (Horde_Exception $e) {} /* If we currently are authenticated, and are not trying to authenticate to * an application, redirect to initial page. This is done in index.php. * If we are trying to authenticate to an application, but don't have to, * redirect to the requesting URL. */ if ($is_auth) { if (!$vars->app) { require HORDE_BASE . '/index.php'; exit; } elseif ($url_in && $registry->isAuthenticated(array('app' => $vars->app))) { _addAnchor($url_in, 'param', null, $url_anchor)->redirect(); } } /* Redirect the user if an alternate login page has been specified. */ if (!empty($conf['auth']['alternate_login'])) { $url = new Horde_Url($conf['auth']['alternate_login'], true); if ($vars->app) { $url->add('app', $vars->app); } if (!isset($_COOKIE[session_name()])) { $url->add(session_name(), session_id()); } if (empty($url_in)) { $url_in = Horde::selfUrl(true, true, true); } $anchor = _addAnchor($url_in, 'param', $vars, $url_anchor); $found = false; foreach ($url->parameters as $key => $value) { if (strpos($value, '%u') !== false) { $url->parameters[$key] = str_replace('%u', $anchor, $value); $found = true; } } if (!$found) { $url->add('url', $anchor); } _addAnchor($url, 'url', $vars, $url_anchor)->redirect(); } /* Build the widget containing the available languages. */ if (!$is_auth && !$prefs->isLocked('language')) { $tmp = array(); foreach ($langs as $val) { $tmp[$val['val']] = array( 'name' => $val['name'], 'selected' => $val['sel'] ); } $loginparams['new_lang'] = array( 'label' => _("Language"), 'type' => 'select', 'value' => $tmp ); } $view->anchor = $vars->anchor_string; $view->app = $vars->app; $view->loginparams_auth = array_intersect_key($loginparams, array('horde_user' => 1, 'horde_pass' => 1)); $view->loginparams_other = array_diff_key($loginparams, array('horde_user' => 1, 'horde_pass' => 1)); $view->loginurl = $loginurl; $view->title = $title; $view->url = $vars->url; if ($browser->hasFeature('ajax')) { $page_output->addScriptFile('smartmobile-login.js', 'horde'); /* Ensure that we are using the smartmobile status listener. */ $notification->detach('status'); $notification->attach('status', null, 'Horde_Core_Notification_Listener_SmartmobileStatus'); $view_type = $registry::VIEW_SMARTMOBILE; } else { $view_type = $registry::VIEW_MINIMAL; } $page_output->header(array( 'title' => $title, 'view' => $view_type )); $notification->notify(array('listeners' => 'status')); echo $view->render('smartmobile'); } else { foreach ($js_files as $val) { $page_output->addScriptFile($val[0], $val[1]); } $page_output->header(array( 'body_class' => 'modal-form', 'title' => $title )); require $registry->get('templates', 'horde') . '/login/login.inc'; } $page_output->footer(); tmpjWNuGb/horde-5.1.5/lib/0000755000175000017500000000000012262230550015115 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/lib/Ajax/0000755000175000017500000000000012262230550016000 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/lib/Ajax/Application/0000755000175000017500000000000012262230550020243 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/lib/Ajax/Application/Handler.php0000644000175000017500000000754212233761316022350 0ustar mathieumathieu * @category Horde * @copyright 2012-2013 Horde LLC * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ class Horde_Ajax_Application_Handler extends Horde_Core_Ajax_Application_Handler { /** * AJAX action: Update topbar. * * @return Horde_Core_Ajax_Response_HordeCore Response object. */ public function topbarUpdate() { global $injector, $registry; $registry->pushApp($this->vars->app); $topbar = $injector->getInstance('Horde_Core_Factory_Topbar') ->create('Horde_Tree_Renderer_Menu', array('nosession' => true)); $hash = $topbar->getHash(); $tree = $topbar->getTree(); $registry->popApp(); if ($this->vars->hash == $hash) { return false; } $node_defs = $tree->renderNodeDefinitions(); $node_defs->hash = $hash; if (isset($node_defs->files)) { $jsfiles = $node_defs->files; unset($node_defs->files); } else { $jsfiles = array(); } $ob = new Horde_Core_Ajax_Response_HordeCore($node_defs); $ob->jsfiles = $jsfiles; return $ob; } /** * AJAX action: Update sidebar. * * @return object See Horde_Core_Tree_Renderer_Javascript#renderNodeDefinitions(). */ public function sidebarUpdate() { return $GLOBALS['injector']->getInstance('Horde_Core_Sidebar')->getTree()->renderNodeDefinitions(); } /** * AJAX action: Auto-update portal block. */ public function blockAutoUpdate() { $html = ''; if (isset($this->vars->app) && isset($this->vars->blockid)) { try { $html = $GLOBALS['injector'] ->getInstance('Horde_Core_Factory_BlockCollection') ->create() ->getBlock($this->vars->app, $this->vars->blockid) ->getContent(isset($this->vars->options) ? $this->vars->options : null); } catch (Exception $e) { $html = $e->getMessage(); } } return new Horde_Core_Ajax_Response_Raw($html, 'text/html'); } /** * AJAX action: Refresh portal block. */ public function blockRefresh() { $html = ''; if (!isset($this->vars->app)) { $this->vars->set('app', 'horde'); } if (isset($this->vars->blockid)) { try { $html = $GLOBALS['injector'] ->getInstance('Horde_Core_Factory_BlockCollection') ->create() ->getBlock($this->vars->app, $this->vars->blockid) ->refreshContent($this->vars); } catch (Exception $e) { $html = $e->getMessage(); } } return new Horde_Core_Ajax_Response_Raw($html, 'text/html'); } /** * AJAX action: Update portal block. */ public function blockUpdate() { if (isset($this->vars->blockid)) { try { return $GLOBALS['injector'] ->getInstance('Horde_Core_Factory_BlockCollection') ->create() ->getBlock($this->vars->app, $this->vars->blockid) ->getAjaxUpdate($this->vars); } catch (Exception $e) { return $e->getMessage(); } } return ''; } } tmpjWNuGb/horde-5.1.5/lib/Ajax/Application.php0000644000175000017500000000131412233761316020762 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ class Horde_Ajax_Application extends Horde_Core_Ajax_Application { /** */ protected function _init() { $this->addHandler('Horde_Ajax_Application_Handler'); // Needed because Core contains Imples $this->addHandler('Horde_Core_Ajax_Application_Handler_Imple'); } } tmpjWNuGb/horde-5.1.5/lib/Prefs/0000755000175000017500000000000012262230550016174 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/lib/Prefs/Special/0000755000175000017500000000000012262230550017554 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/lib/Prefs/Special/Twitter.php0000644000175000017500000000644512233761316021747 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL * @package Horde */ class Horde_Prefs_Special_Twitter implements Horde_Core_Prefs_Ui_Special { /** */ public function init(Horde_Core_Prefs_Ui $ui) { } /** */ public function display(Horde_Core_Prefs_Ui $ui) { global $injector, $prefs, $registry, $session; $twitter = $injector->getInstance('Horde_Service_Twitter'); $token = unserialize($prefs->getValue('twitter')); /* Check for an existing token */ if (!empty($token['key']) && !empty($token['secret'])) { $auth_token = new Horde_Oauth_Token($token['key'], $token['secret']); $twitter->auth->setToken($auth_token); } try { $profile = Horde_Serialize::unserialize($twitter->account->verifyCredentials(), Horde_Serialize::JSON); } catch (Horde_Service_Twitter_Exception $e) {} $view = new Horde_View(array( 'templatePath' => HORDE_TEMPLATES . '/prefs' )); $view->addHelper('Text'); $view->appname = $registry->get('name'); /* Could not find a valid auth token, and we are not in the process of * getting one */ if (empty($profile)) { try { $results = $twitter->auth->getRequestToken(); } catch (Horde_Service_Twitter_Exception $e) { throw new Horde_Exception(sprintf(_("Error connecting to Twitter: %s Details have been logged for the administrator."), $e->getMessage())); } $session->store($results->secret, false, 'twitter_request_secret'); $view->link = new Horde_Url(Horde::externalUrl($twitter->auth->getUserAuthorizationUrl($results), false)); } else { $view->haveSession = true; $view->profile_image_url = $profile->profile_image_url; $view->profile_screenname = $profile->screen_name; $view->profile_name = $profile->name; $view->profile_location = $profile->location; } return $view->render('twitter'); } /** */ public function update(Horde_Core_Prefs_Ui $ui) { global $injector, $prefs; $twitter = $injector->getInstance('Horde_Service_Twitter'); $token = unserialize($prefs->getValue('twitter')); /* Check for an existing token */ if (!empty($token['key']) && !empty($token['secret'])) { $auth_token = new Horde_Oauth_Token($token['key'], $token['secret']); $twitter->auth->setToken($auth_token); } switch ($ui->vars->twitteractionID) { case 'revokeInfinite': $twitter->account->endSession(); $prefs->setValue('twitter', 'a:0:{}'); echo ''; exit; } return false; } } tmpjWNuGb/horde-5.1.5/lib/Prefs/Special/Facebook.php0000644000175000017500000001640112233761316022007 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL * @package Horde */ class Horde_Prefs_Special_Facebook implements Horde_Core_Prefs_Ui_Special { /** */ public function init(Horde_Core_Prefs_Ui $ui) { } /** */ public function display(Horde_Core_Prefs_Ui $ui) { global $injector, $notification, $page_output, $prefs, $registry; try { $facebook = $injector->getInstance('Horde_Service_Facebook'); } catch (Horde_Exception $e) { return $e->getMessage(); } $page_output->addThemeStylesheet('facebook.css'); $view = new Horde_View(array( 'templatePath' => HORDE_TEMPLATES . '/prefs' )); $view->app_name = $registry->get('name', 'horde'); // Ensure we have authorized horde. try { $session_uid = $facebook->auth->getLoggedInUser(); $fbp = unserialize($prefs->getValue('facebook')); $uid = $fbp['uid']; // Verify the userid matches the one we expect for the session if ($fbp['uid'] != $session_uid) { $haveSession = false; } else { $haveSession = true; } } catch (Horde_Service_Facebook_Exception $e) { Horde::logMessage($e->getMessage(), 'ERR'); $haveSession = false; $prefs->setValue('facebook', serialize(array('uid' => '', 'sid' => 0))); } // Get a token generator $token = $injector->getInstance('Horde_Token'); // We have a session, build the template. if (!empty($haveSession)) { try { $perms = $facebook->users->getAppPermissions(); $view->have_publish = !empty($perms[Horde_Service_Facebook_Auth::EXTEND_PERMS_PUBLISHSTREAM]); $view->have_read = !empty($perms[Horde_Service_Facebook_Auth::EXTEND_PERMS_READSTREAM]); $view->have_friends = !empty($perms[Horde_Service_Facebook_Auth::EXTEND_PERMS_FRIENDS_ABOUT]); } catch (Horde_Service_Facebook_Exception $e) { $notification->push($e->getMessage(), 'horde.error'); } // Get user info. FB recommends using the FB photo and styling. $fql = 'SELECT first_name, last_name, status, pic_with_logo, current_location FROM user WHERE uid IN (' . $uid . ')'; try { $user_info = $facebook->fql->run($fql); } catch (Horde_Service_Facebook_Exception $e) { $notification->push(_("Temporarily unable to connect with Facebook, Please try again."), 'horde.alert'); } // Get a state token. $state = $token->get(); // FB Perms links $cburl = Horde::url('services/facebook', true); $view->have_session = true; $view->user_pic_url = $user_info[0]['pic_with_logo']; $view->user_name = $user_info[0]['first_name'] . ' ' . $user_info[0]['last_name']; $url = $facebook->auth->getOAuthUrl($cburl, array(Horde_Service_Facebook_Auth::EXTEND_PERMS_PUBLISHSTREAM)); $view->publish_url = $url; // User read perms $url = $facebook->auth->getOAuthUrl($cburl, array( Horde_Service_Facebook_Auth::EXTEND_PERMS_READSTREAM, Horde_Service_Facebook_Auth::EXTEND_PERMS_USER_ABOUT, Horde_Service_Facebook_Auth::EXTEND_PERMS_USER_BIRTHDAY, Horde_Service_Facebook_Auth::EXTEND_PERMS_USER_EVENTS, Horde_Service_Facebook_Auth::EXTEND_PERMS_USER_HOMETOWN, Horde_Service_Facebook_Auth::EXTEND_PERMS_USER_LOCATION, Horde_Service_Facebook_Auth::EXTEND_PERMS_USER_PHOTOS), $state); $view->read_url = Horde::signQueryString($url); // Friend read perms $url = $facebook->auth->getOAuthUrl($cburl, array( Horde_Service_Facebook_Auth::EXTEND_PERMS_FRIENDS_ABOUT, Horde_Service_Facebook_Auth::EXTEND_PERMS_FRIENDS_BIRTHDAY, Horde_Service_Facebook_Auth::EXTEND_PERMS_FRIENDS_HOMETOWN, Horde_Service_Facebook_Auth::EXTEND_PERMS_FRIENDS_LOCATION, Horde_Service_Facebook_Auth::EXTEND_PERMS_FRIENDS_PHOTOS), $state); $view->friends_url = Horde::signQueryString($url); } else { /* No existing session */ $state = $token->get(); $view->authUrl = $facebook->auth->getOAuthUrl(Horde::url('services/facebook', true), array(), $state); } return $view->render('facebook'); } /** */ public function update(Horde_Core_Prefs_Ui $ui) { global $injector, $notification, $prefs; try { $facebook = $injector->getInstance('Horde_Service_Facebook'); } catch (Horde_Exception $e) { return $e->getMessage(); } try { switch ($ui->vars->fbactionID) { case 'revokeApplication': $prefs->setValue( 'facebook', array('uid' => '', 'sid' => '')); break; case 'revokePublish': $facebook->auth->revokeExtendedPermission(Horde_Service_Facebook_Auth::EXTEND_PERMS_PUBLISHSTREAM); break; case 'revokeRead': $facebook->auth->revokeExtendedPermission(Horde_Service_Facebook_Auth::EXTEND_PERMS_READSTREAM); $facebook->auth->revokeExtendedPermission(Horde_Service_Facebook_Auth::EXTEND_PERMS_USER_ABOUT); $facebook->auth->revokeExtendedPermission(Horde_Service_Facebook_Auth::EXTEND_PERMS_USER_HOMETOWN); $facebook->auth->revokeExtendedPermission(Horde_Service_Facebook_Auth::EXTEND_PERMS_USER_LOCATION); $facebook->auth->revokeExtendedPermission(Horde_Service_Facebook_Auth::EXTEND_PERMS_USER_PHOTOS); $facebook->auth->revokeExtendedPermission(Horde_Service_Facebook_Auth::EXTEND_PERMS_USER_BIRTHDAY); $facebook->auth->revokeExtendedPermission(Horde_Service_Facebook_Auth::EXTEND_PERMS_USER_EVENTS); break; case 'revokeFriends': $facebook->auth->revokeExtendedPermission(Horde_Service_Facebook_Auth::EXTEND_PERMS_FRIENDS_ABOUT); $facebook->auth->revokeExtendedPermission(Horde_Service_Facebook_Auth::EXTEND_PERMS_FRIENDS_BIRTHDAY); $facebook->auth->revokeExtendedPermission(Horde_Service_Facebook_Auth::EXTEND_PERMS_FRIENDS_HOMETOWN); $facebook->auth->revokeExtendedPermission(Horde_Service_Facebook_Auth::EXTEND_PERMS_FRIENDS_LOCATION); $facebook->auth->revokeExtendedPermission(Horde_Service_Facebook_Auth::EXTEND_PERMS_FRIENDS_PHOTOS); break; } } catch (Horde_Service_Facebook_Exception $e) { $notification->push($e->getMessage(), 'horde.error'); } return false; } } tmpjWNuGb/horde-5.1.5/lib/Prefs/Special/Category.php0000644000175000017500000001013612233761316022052 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL * @package Horde */ class Horde_Prefs_Special_Category implements Horde_Core_Prefs_Ui_Special { /** */ public function init(Horde_Core_Prefs_Ui $ui) { } /** */ public function display(Horde_Core_Prefs_Ui $ui) { global $injector, $page_output, $prefs; $page_output->addScriptFile('categoryprefs.js', 'horde'); $page_output->addScriptFile('colorpicker.js', 'horde'); $page_output->addInlineJsVars(array( 'HordeCategoryPrefs.category_text' => _("Enter a name for the new category:") )); $cManager = new Horde_Prefs_CategoryManager(); $categories = $cManager->get(); $colors = $cManager->colors(); $fgcolors = $cManager->fgColors(); $view = new Horde_View(array( 'templatePath' => HORDE_TEMPLATES . '/prefs' )); $view->addHelper('Horde_Core_View_Helper_Image'); $view->addHelper('Horde_Core_View_Helper_Label'); $view->addHelper('Text'); $view->picker_img = !$prefs->isLocked('category_colors'); // Default Color $color = isset($colors['_default_']) ? $colors['_default_'] : '#FFFFFF'; $fgcolor = isset($fgcolors['_default_']) ? $fgcolors['_default_'] : '#000000'; $color_b = 'color_' . hash('md5', '_default_'); $view->default_color = $color; $view->default_fgcolor = $fgcolor; $view->default_id = $color_b; // Unfiled Color $color = isset($colors['_unfiled_']) ? $colors['_unfiled_'] : '#FFFFFF'; $fgcolor = isset($fgcolors['_unfiled_']) ? $fgcolors['_unfiled_'] : '#000000'; $color_b = 'color_' . hash('md5', '_unfiled_'); $view->unfiled_color = $color; $view->unfiled_fgcolor = $fgcolor; $view->unfiled_id = $color_b; $entries = array(); foreach ($categories as $name) { $color = isset($colors[$name]) ? $colors[$name] : '#FFFFFF'; $fgcolor = isset($fgcolors[$name]) ? $fgcolors[$name] : '#000000'; $color_b = 'color_' . hash('md5', $name); $entries[] = array( 'color' => $color, 'fgcolor' => $fgcolor, 'id' => $color_b, 'name' => $name ); } $view->categories = $entries; return $view->render('category'); } /** */ public function update(Horde_Core_Prefs_Ui $ui) { global $page_output; $cManager = new Horde_Prefs_CategoryManager(); /* Always save colors of all categories. */ $colors = array(); $categories = $cManager->get(); foreach ($categories as $category) { if ($color = $ui->vars->get('color_' . hash('md5', $category))) { $colors[$category] = $color; } } if ($color = $ui->vars->get('color_' . hash('md5', '_default_'))) { $colors['_default_'] = $color; } if ($color = $ui->vars->get('color_' . hash('md5', '_unfiled_'))) { $colors['_unfiled_'] = $color; } $cManager->setColors($colors); switch ($ui->vars->cAction) { case 'add': $cManager->add($ui->vars->category); break; case 'remove': $cManager->remove($ui->vars->category); break; default: /* Save button. */ $page_output->addInlineScript(array( 'if (window.opener && window.name) window.close();' )); return true; } return false; } } tmpjWNuGb/horde-5.1.5/lib/Prefs/Special/Activesync.php0000644000175000017500000001002712233761316022404 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL * @package Horde */ class Horde_Prefs_Special_Activesync implements Horde_Core_Prefs_Ui_Special { /** */ public function init(Horde_Core_Prefs_Ui $ui) { } /** */ public function display(Horde_Core_Prefs_Ui $ui) { global $conf, $injector, $page_output, $prefs, $registry; if (empty($conf['activesync']['enabled'])) { return _("ActiveSync not activated."); } $state = $injector->getInstance('Horde_ActiveSyncState'); $devices = $state->listDevices($registry->getAuth()); $view = new Horde_View(array( 'templatePath' => HORDE_TEMPLATES . '/prefs' )); $view->addHelper('Tag'); $selfurl = $ui->selfUrl(); $view->reset = $selfurl->copy()->add('reset', 1); $devs = array(); $js = array(); foreach ($devices as $key => $device) { $dev = $state->loadDeviceInfo($device['device_id'], $registry->getAuth()); $js[$dev->id] = array( 'id' => $dev->id, 'user' => $dev->user ); $devs[] = $dev; } $page_output->addScriptFile('activesyncprefs.js', 'horde'); $page_output->addInlineJsVars(array( 'HordeActiveSyncPrefs.devices' => $js )); $view->devices = $devs; return $view->render('activesync'); } /** */ public function update(Horde_Core_Prefs_Ui $ui) { global $injector, $notification, $registry; $auth = $registry->getAuth(); $state = $injector->getInstance('Horde_ActiveSyncState'); $state->setLogger($injector->getInstance('Horde_Log_Logger')); try { if ($ui->vars->wipeid) { if (!$state->deviceExists($ui->vars->wipeid, $auth)) { throw new Horde_Exception_PermissionDenied(); } $state->setDeviceRWStatus($ui->vars->wipeid, Horde_ActiveSync::RWSTATUS_PENDING); $notification->push(sprintf(_("A remote wipe for device id %s has been initiated. The device will be wiped during the next synchronisation."), $ui->vars->wipe)); } elseif ($ui->vars->cancelwipe) { if (!$state->deviceExists($ui->vars->wipeid, $auth)) { throw new Horde_Exception_PermissionDenied(); } $state->setDeviceRWStatus($ui->vars->cancelwipe, Horde_ActiveSync::RWSTATUS_OK); $notification->push(sprintf(_("The Remote Wipe for device id %s has been cancelled."), $ui->vars->wipe)); } elseif ($ui->vars->reset) { $devices = $state->listDevices($auth); foreach ($devices as $device) { $state->removeState(array( 'devId' => $device['device_id'], 'user' => $auth )); } $notification->push(_("All state removed for your ActiveSync devices. They will resynchronize next time they connect to the server.")); } elseif ($ui->vars->removedevice) { $state->removeState(array( 'devId' => $ui->vars->removedevice, 'user' => $auth )); $notification->push(sprintf(_("The state for device id %s has been reset. It will resynchronize next time it connects to the server."), $ui->vars->removedevice)); } } catch (Horde_ActiveSync_Exception $e) { $notification->push(_("There was an error communicating with the ActiveSync server: %s"), $e->getMessage(), 'horde.err'); } return false; } } tmpjWNuGb/horde-5.1.5/lib/Prefs/Special/Syncml.php0000644000175000017500000000562712233761316021553 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL * @package Horde */ class Horde_Prefs_Special_Syncml implements Horde_Core_Prefs_Ui_Special { /** */ public function init(Horde_Core_Prefs_Ui $ui) { } /** */ public function display(Horde_Core_Prefs_Ui $ui) { global $injector, $page_output, $prefs, $registry; $page_output->addScriptFile('syncmlprefs.js', 'horde'); $devices = Horde_SyncMl_Backend::factory('Horde')->getUserAnchors($registry->getAuth()); $view = new Horde_View(array( 'templatePath' => HORDE_TEMPLATES . '/prefs' )); $view->addHelper('Text'); $partners = array(); $format = $prefs->getValue('date_format') . ' %H:%M'; foreach ($devices as $device) { $partners[] = array( 'anchor' => $device['syncml_clientanchor'], 'db' => $device['syncml_db'], 'deviceid' => $device['syncml_syncpartner'], 'rawdb' => $device['syncml_db'], 'device' => $device['syncml_syncpartner'], 'time' => strftime($format, $device['syncml_serveranchor']) ); } $view->devices = $partners; return $view->render('syncml'); } /** */ public function update(Horde_Core_Prefs_Ui $ui) { global $notification, $registry; $auth = $registry->getAuth(); $backend = Horde_SyncMl_Backend::factory('Horde'); if ($ui->vars->removedb && $ui->vars->removedevice) { try { $backend->removeAnchor($auth, $ui->vars->removedevice, $ui->vars->removedb); $backend->removeMaps($auth, $ui->vars->removedevice, $ui->vars->removedb); $notification->push(sprintf(_("Deleted synchronization session for device \"%s\" and database \"%s\"."), $ui->vars->deviceid, $ui->vars->db), 'horde.success'); } catch (Horde_Exception $e) { $notification->push(_("Error deleting synchronization session:") . ' ' . $e->getMessage(), 'horde.error'); } } elseif ($ui->vars->deleteall) { try { $backend->removeAnchor($auth); $backend->removeMaps($auth); $notification->push(_("All synchronization sessions deleted."), 'horde.success'); } catch (Horde_Exception $e) { $notification->push(_("Error deleting synchronization sessions:") . ' ' . $e->getMessage(), 'horde.error'); } } return false; } } tmpjWNuGb/horde-5.1.5/lib/Test.php0000644000175000017500000011235512233761316016563 0ustar mathieumathieu * @author Jon Parise * @author Brent J. Nordquist * @author Michael Slusarz * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ /* If gettext is not loaded, define a dummy _() function so that * including any file with gettext strings won't cause a fatal error, * causing test.php to return a blank page. */ if (!function_exists('_')) { function _($s) { return $s; } } class Horde_Test { /** * The PHP version of the system. * * @var array */ protected $_phpver; /** * Supported versions of PHP. * * @var array */ protected $_supported = array( '5.3', '5.4' ); /** * The module list *
     * KEY:   extension name
     * VALUE: Either the description or an array with the following entries:
     *        descrip: (string) Module description
     *        error: (string) Error message
     *        fatal: (boolean) Is missing extension fatal?
     *        function: (string) Reference to function to run. If function
     *                  returns boolean true, error message will be output.
     *                  If function returns a string, this error message
     *                  will be used.
     *        phpver: (string) The PHP version above which to do the test
     * 
* * @var array */ protected $_moduleList = array( 'ctype' => array( 'descrip' => 'Ctype Support', 'error' => 'The ctype functions are required by various Horde libraries. Don\t compile PHP with --disable-all/--disable-ctype.', 'fatal' => true ), 'dom' => array( 'descrip' => 'DOM XML Support', 'error' => 'Horde will not run without the dom extension. Don\'t compile PHP with --disable-all/--disable-dom.', 'fatal' => true ), 'fileinfo' => array( 'descrip' => 'MIME Magic Support (fileinfo)', 'error' => 'The fileinfo extension is used to provide MIME Magic scanning on unknown data. Don\'t compile PHP with --disable-all/--disable-fileinfo.' ), 'fileinfo_check' => array( 'descrip' => 'MIME Magic Support (fileinfo) - Configuration', 'error' => 'The fileinfo extension could not open the default MIME Magic database location. You will need to manually specify the MIME Magic database location in the config file.', 'function' => '_checkFileinfo' ), 'ftp' => array( 'descrip' => 'FTP Support', 'error' => 'FTP support is only required if you want to authenticate against an FTP server, upload your configuration files with FTP, or use an FTP server for file storage. Compile PHP with --enable-ftp to ensure the extension is active on your server.' ), 'gd' => array( 'descrip' => 'GD Support', 'error' => 'Horde will use the GD extension to perform manipulations on image data (compile PHP with --with-gd). It is recommended to use the PECL imagick library instead over this extension.' ), 'gettext' => array( 'descrip' => 'Gettext Support', 'error' => 'Horde will not run without gettext support. Compile PHP with --with-gettext.', 'fatal' => true ), 'geoip' => array( 'descrip' => 'GeoIP Support (PECL extension)', 'error' => 'Horde can optionally use the GeoIP extension to provide faster country name lookups.' ), 'hash' => array( 'descrip' => 'Hash Support', 'error' => 'Horde will not run without the hash extension. Don\'t compile PHP with --disable-all/--disable-hash.', 'fatal' => true ), 'horde_lz4' => array( 'descrip' => 'LZ4 Compression Support (PECL extension)', 'error' => 'If the horde_lz4 PECL extension is available, Horde can perform real-time compression on cached data to optimize storage resources.' ), 'iconv' => array( 'descrip' => 'Iconv Support', 'error' => 'If you want to take full advantage of Horde\'s localization features and character set support, you will need the iconv extension. Don\t compile PHP with --disable-all/--disable-iconv.' ), 'iconv_libiconv' => array( 'descrip' => 'GNU Iconv Support', 'error' => 'For best results make sure the iconv extension is linked against GNU libiconv.', 'function' => '_checkIconvImplementation' ), 'intl' => array( 'descrip' => 'Internationalization Support', 'error' => 'Horde requires the intl extension to handle Internationalized Domain Names. Compile PHP with --enable-intl.' ), 'imagick' => array( 'descrip' => 'Imagick (PECL extension)', 'error' => 'Horde can make use of the Imagick library to manipulate images. It is highly recommended to use the PECL extension (although, alternatively, Horde can be configured to use the convert command line utility instead).' ), 'json' => array( 'descrip' => 'JSON Support', 'error' => 'Horde will not run without the json extension. Don\'t compile PHP with --disable-all/--disable-json.', 'fatal' => true ), 'ldap' => array( 'descrip' => 'LDAP Support', 'error' => 'LDAP support is only required if you want to use an LDAP server for anything like authentication, address books, or preference storage. Compile PHP with --with-ldap to activate the extension.' ), 'lzf' => array( 'descrip' => 'LZF Compression Support (PECL extension)', 'error' => 'If the lzf PECL extension is available, Horde can perform real-time compression on cached data to optimize storage resources. It is recommended to use horde_lz4 instead, as its compression speed is twice as fast as this extension.' ), 'mbstring' => array( 'descrip' => 'Mbstring Support', 'error' => 'If you want to take full advantage of Horde\'s localization features and character set support, you will need the mbstring extension. Compile PHP with --enable-mbstring to activate the extension.' ), 'memcache' => array( 'descrip' => 'memcached Support (memcache) (PECL extension)', 'error' => 'The memcache PECL extension is only needed if you are using a memcached server for caching or sessions. See horde/docs/INSTALL for information on how to install PECL/PHP extensions.' ), 'mongo' => array( 'descrip' => 'MongoDB support (PECL extension)', 'error' => 'If you want to use the MongoDB NoSQL database backend, you must install this extension.', 'function' => '_checkMongo' ), 'mysql' => array( 'descrip' => 'MySQL Support', 'error' => 'The MySQL extension is only required if you want to use a MySQL database server for data storage. See the PHP documentation on how to enable MySQL support when compiling PHP.' ), 'openssl' => array( 'descrip' => 'OpenSSL Support', 'error' => 'The OpenSSL extension is required for various cryptographic actions (highly recommended). Compile PHP with --with-openssl to activate the extension.' ), 'pam' => array( 'descrip' => 'PAM Support (PECL extension)', 'error' => 'The PAM PECL extension is required to allow PAM authentication to be used.', 'function' => '_checkPam' ), 'pdo' => array( 'descrip' => 'PDO', 'error' => 'The PDO extension is required if you plan on using a database backend other than mysql or mysqli with Horde_Db.', ), 'pgsql' => array( 'descrip' => 'PostgreSQL Support', 'error' => 'The PostgreSQL extension is only required if you want to use a PostgreSQL database server for data storage.' ), 'session' => array( 'descrip' => 'Session Support', 'error' => 'Session support is required to use Horde. Don\'t compile PHP with --disable-all/--disable-session.', 'fatal' => true ), 'SimpleXML' => array( 'descrip' => 'SimpleXML support', 'error' => 'Horde will not run without the SimpleXML extension. Don\'t compile PHP with --disable-all/--disable-simplexml.', 'fatal' => true ), 'tidy' => array( 'descrip' => 'Tidy support', 'error' => 'The tidy PHP extension is used to sanitize HTML data. Compile PHP with --with-tidy to activate the extension.' ), 'xml' => array( 'descrip' => 'XML Parser support', 'error' => 'Horde will not run without the xml extension. Don\'t compile PHP with --disable-all/--without-xml.', 'fatal' => true, 'function' => '_checkLibxmlVersion' ), 'zlib' => array( 'descrip' => 'Zlib Support', 'error' => 'The zlib extension is highly recommended for use with Horde. It allows page compression and handling of ZIP and GZ data. Compile PHP with --with-zlib to activate.' ) ); /** * PHP settings list. *
     * KEY:   setting name
     * VALUE: An array with the following entries:
     *        error: (string) Error message.
     *        function: (string) Reference to function to run. If function
     *                  returns non-empty value, error message will be output.
     *        setting: (mixed) Either a boolean (whether setting should be
     *                 on or off) or 'value', which will simply output the
     *                 value of the setting.
     * 
* * @var array */ protected $_settingsList = array( 'allow_url_include' => array( 'setting' => false, 'error' => 'This is a security hazard. Horde will attempt to disable automatically, but it is best to manually disable also.' ), 'magic_quotes_runtime' => array( 'setting' => false, 'error' => 'magic_quotes_runtime may cause problems with database inserts, etc. Horde will attempt to disable automatically, but it is best to manually disable also. This setting is deprecated in PHP 5.3.' ), 'magic_quotes_sybase' => array( 'setting' => false, 'error' => 'magic_quotes_sybase may cause problems with database inserts, etc. Horde will attempt to disable automatically, but it is best to manually disable also. This setting is deprecated in PHP 5.3.' ), 'memory_limit' => array( 'setting' => 'value', 'error' => 'If PHP\'s internal memory limit is not set high enough Horde will not be able to handle large data items. It is recommended to set the value of memory_limit in php.ini to at least 64M.', 'function' => '_checkMemoryLimit' ), 'register_globals' => array( 'setting' => false, 'error' => 'Horde will fatally exit if register_globals is set. Turn it off. This setting is deprecated in PHP 5.3.' ), 'safe_mode' => array( 'setting' => false, 'error' => 'If safe_mode is enabled, Horde cannot set enviroment variables, which means Horde will be unable to translate the user interface into different languages. This setting is deprecated in PHP 5.3.' ), 'session.auto_start' => array( 'setting' => false, 'error' => 'Horde won\'t work with automatically started sessions, because it explicitly creates new session when necessary to protect against session fixations.' ), 'session.gc_divisor' => array( 'setting' => 'value', 'error' => 'PHP automatically garbage collects old session information, as long as this setting (and session.gc_probability) are set to non-zero. It is recommended that this value be "10000" or higher (see docs/INSTALL).', 'function' => '_checkGcDivisor' ), 'session.gc_probability' => array( 'setting' => 'value', 'error' => 'PHP automatically garbage collects old session information, as long as this setting (and session.gc_divisor) are set to non-zero. It is recommended that this value be "1".', 'function' => '_checkGcProbability' ), 'session.use_trans_sid' => array( 'setting' => false, 'error' => 'Horde will work with session.use_trans_sid turned on, but you may see double session-ids in your URLs, and if the session name in php.ini differs from the session name configured in Horde, you may get two session ids and see other odd behavior. The URL-rewriting that use_trans_sid does also tends to break XHTML compliance. In short, you should really disable this.' ), 'tidy.clean_output' => array( 'setting' => false, 'error' => 'This will break output of any dynamically created, non-HTML content. Horde will attempt to disable automatically, but it is best to manually disable also.' ), 'zlib.output_compression' => array( 'setting' => false, 'error' => 'You should not enable output compression unconditionally because some browsers and scripts don\'t work well with output compression. Enable compression in Horde\'s configuration instead, so that we have full control over the conditions where to enable and disable it.' ) ); /** * PEAR modules list. *
     * KEY:   PEAR class name
     * VALUE: An array with the following entries:
     *        depends: (?) This module depends on another module.
     *        error: (string) Error message.
     *        function: (string) Reference to function to run if module is
     *                  found.
     *        path: (string) The path to the PEAR module. Only needed if
     *                 KEY is not autoloadable.
     *        required: (boolean) Is this PEAR module required?
     * 
* * @var array */ protected $_pearList = array( 'File_Fstab' => array( 'error' => 'Horde requires the File_Fstab package if using the localhost driver for the Accounts block.' ), 'Net_DNS2' => array( 'error' => 'Net_DNS2 can speed up hostname lookups against broken DNS servers.' ), 'Services_Weather' => array( 'error' => 'Services_Weather is used by the METAR weather applet/block on the portal page.' ), ); /** * Required configuration files. *
     * KEY:   file path
     * VALUE: The error message to use (null to use default message)
     * 
* * @var array */ protected $_fileList = array( 'config/conf.php' => 'You need to login to Horde as an administrator and create the configuration file.' ); /** * Inter-Horde application dependencies. *
     * KEY:   app name
     * VALUE: An array with the following entries:
     *        error: (string) Error message.
     *        version: (string) Minimum version required of the app.
     * 
* * @var array */ protected $_appList = array(); /** * Constructor. */ public function __construct() { /* Store the PHP version information. */ $this->_phpver = $this->_splitPhpVersion(PHP_VERSION); /* We want to be as verbose as possible here. */ error_reporting(E_ALL); /* Set character encoding. */ header('Content-type: text/html; charset=UTF-8'); header('Vary: Accept-Language'); } /** * Parse PHP version. * * @param string $version A PHP-style version string (X.X.X). * * @param array The parsed string. * Keys: 'major', 'minor', 'subminor', 'class' */ protected function _splitPhpVersion($version) { /* First pick off major version, and lower-case the rest. */ if ((strlen($version) >= 3) && ($version[1] == '.')) { $phpver['major'] = substr($version, 0, 3); $version = substr(strtolower($version), 3); } else { $phpver['major'] = $version; $phpver['class'] = 'unknown'; return $phpver; } if ($version[0] == '.') { $version = substr($version, 1); } /* Next, determine if this is 4.0b or 4.0rc; if so, there is no minor, the rest is the subminor, and class is set to beta. */ $s = strspn($version, '0123456789'); if ($s == 0) { $phpver['subminor'] = $version; $phpver['class'] = 'beta'; return $phpver; } /* Otherwise, this is non-beta; the numeric part is the minor, the rest is either a classification (dev, cvs) or a subminor version (rc, pl). */ $phpver['minor'] = substr($version, 0, $s); if ((strlen($version) > $s) && (($version[$s] == '.') || ($version[$s] == '-'))) { ++$s; } $phpver['subminor'] = substr($version, $s); if (($phpver['subminor'] == 'cvs') || ($phpver['subminor'] == 'dev') || (substr($phpver['subminor'], 0, 2) == 'rc')) { unset($phpver['subminor']); $phpver['class'] = 'dev'; } else { if (!$phpver['subminor']) { unset($phpver['subminor']); } $phpver['class'] = 'release'; } return $phpver; } /** * Check the list of PHP modules. * * @return string The HTML output. */ public function phpModuleCheck() { $output = ''; foreach ($this->_moduleList as $key => $val) { $error_msg = $mod_test = $status_out = $fatal = null; $test_function = null; $entry = array(); if (is_array($val)) { $descrip = $val['descrip']; $fatal = !empty($val['fatal']); if (isset($val['phpver']) && (version_compare(PHP_VERSION, $val['phpver']) == -1)) { $mod_test = true; $status_out = 'N/A'; } if (isset($val['error'])) { $error_msg = $val['error']; } if (isset($val['function'])) { $test_function = $val['function']; } } else { $descrip = $val; } if (is_null($status_out)) { if (is_null($test_function)) { $mod_test = extension_loaded($key); } else { $mod_test = call_user_func(array($this, $test_function)); if (is_string($mod_test)) { $error_msg = $mod_test; $mod_test = false; } } $status_out = $this->_status($mod_test, $fatal); } $entry[] = $descrip; $entry[] = $status_out; if (!is_null($error_msg) && !$mod_test) { $entry[] = $error_msg; if (!$fatal) { $entry[] = 1; } } $output .= $this->_outputLine($entry); if ($fatal && !$mod_test) { echo $output; exit; } } return $output; } /** * Additional check for iconv module implementation. * * @return boolean False on error. */ protected function _checkIconvImplementation() { return extension_loaded('iconv') && in_array(ICONV_IMPL, array('libiconv', 'glibc')); } /** * Additional check for libxml version. * * @return boolean False on error. */ protected function _checkLibxmlVersion() { if (!extension_loaded('xml')) { return false; } if (LIBXML_VERSION < 20700) { return 'The libxml version is too old. libxml 2.7 or later is required.'; } return true; } /** * Additional check for fileinfo module. * * @return boolean False on error. */ protected function _checkFileinfo() { if (extension_loaded('fileinfo') && ($res = @finfo_open())) { finfo_close($res); return true; } return false; } /** */ protected function _checkPam() { if (extension_loaded('pam')) { return true; } if (extension_loaded('pam_auth')) { return 'The PAM extension is required to allow PAM authentication to be used. You have an improper PAM extension loaded. Some installations (e.g. Debian, Ubuntu) ship with an altered version of the PAM extension. You must uninstall this extension and reinstall from PECL.'; } return false; } /** */ protected function _checkMongo() { if (!extension_loaded('mongo')) { return false; } if (version_compare(phpversion('mongo'), '1.3.0') === -1) { return 'The Mongo extension you have installed is too old.'; } return true; } /** * Checks the list of PHP settings. * * @params array $settings The list of settings to check. * * @return string The HTML output. */ public function phpSettingCheck($settings = null) { $output = ''; if (is_null($settings)) { $settings = $this->_settingsList; } foreach ($settings as $key => $val) { $entry = array(); if (is_bool($val['setting'])) { $result = (ini_get($key) == $val['setting']); $entry[] = $key . ' ' . (($val['setting'] === true) ? 'enabled' : 'disabled'); $entry[] = $this->_status($result); if (!$result && (!isset($val['function']) || call_user_func(array($this, $val['function'])))) { $entry[] = $val['error']; } } elseif ($val['setting'] == 'value') { $entry[] = $key . ' value'; $entry[] = ini_get($key); if (!empty($val['error']) && (!isset($val['function']) || call_user_func(array($this, $val['function'])))) { $entry[] = $val['error']; $entry[] = 1; } } $output .= $this->_outputLine($entry); } return $output; } /** * Check the list of PEAR modules. * * @return string The HTML output. */ public function pearModuleCheck() { $output = ''; /* Turn tracking of errors on. */ ini_set('track_errors', 1); /* Print the include_path. */ $output .= $this->_outputLine(array("PEAR Search Path (PHP's include_path)", ' ' . ini_get('include_path') . '')); /* Check for PEAR in general. */ @include_once 'PEAR.php'; $entry = array( 'PEAR', $this->_status(!isset($php_errormsg)), ); if (isset($php_errormsg)) { $entry[] = 'Check your PHP include_path setting to make sure it has the PEAR library directory.'; $output .= $this->_outputLine($entry); ini_restore('track_errors'); return $output; } $output .= $this->_outputLine($entry); /* Go through module list. */ $succeeded = array(); foreach ($this->_pearList as $key => $val) { $entry = array(); /* If this module depends on another module that we * haven't succesfully found, fail the test. */ if (!empty($val['depends']) && empty($succeeded[$val['depends']])) { $result = false; } elseif (empty($val['path'])) { $result = @class_exists($key); } else { $result = @include_once $val['path']; } $error_msg = $val['error']; if ($result && isset($val['function'])) { $func_output = call_user_func(array($this, $val['function'])); if ($func_output) { $result = false; $error_msg = $func_output; } } $entry[] = $key; $entry[] = $this->_status($result, !empty($val['required'])); if ($result) { $succeeded[$key] = true; } else { if (!empty($val['required'])) { $error_msg .= ' THIS IS A REQUIRED MODULE!'; } $entry[] = $error_msg; if (empty($val['required'])) { $entry[] = 1; } } $output .= $this->_outputLine($entry); } /* Restore previous value of 'track_errors'. */ ini_restore('track_errors'); return $output; } /** * Additional check for 'session.gc_divisor'. * * @return boolean Returns true if error string should be displayed. */ protected function _checkMemoryLimit() { $memlimit = trim(ini_get('memory_limit')); switch (strtolower(substr($memlimit, -1))) { case 'g': $memlimit *= 1024; // Fall-through case 'm': $memlimit *= 1024; // Fall-through case 'k': $memlimit *= 1024; // Fall-through } return ($memlimit < 67108864); } /** * Additional check for 'session.gc_divisor'. * * @return boolean Returns true if error string should be displayed. */ protected function _checkGcDivisor() { return (ini_get('session.gc_divisor') < 10000); } /** * Additional check for 'session.gc_probability'. * * @return boolean Returns true if error string should be displayed. */ protected function _checkGcProbability() { return !(ini_get('session.gc_probability') && ini_get('session.gc_divisor')); } /** * Check the list of required files * * @return string The HTML output. */ public function requiredFileCheck() { $output = ''; $php = trim(system('which php')); if (!$php || !file_exists($php)) { $output = '

Cannot find PHP command-line binary on your system. Syntax checking of configuration files is disabled.

'; $php = null; } else { $output = ''; } ksort($this->_fileList); return $output . $this->_requiredFileCheck($this->_fileList, $php); } /** * Check the list of required files * * @param array $filelist List of files to check. * @param string $php PHP CLI location. * @param boolean $is_local Is filelist a "local" file? * * @return string The HTML output. */ protected function _requiredFileCheck($filelist, $php, $is_local = false) { $filedir = $GLOBALS['registry']->get('fileroot'); $output = $tmp = ''; foreach ($filelist as $key => $val) { $entry = array($key); $file = $filedir . '/' . $key; $entry2 = null; if (file_exists($file)) { if (is_readable($file)) { if (is_null($php)) { $entry[] = $this->_status(true); $check_local = true; } else { exec(escapeshellcmd($php) . ' -l ' . escapeshellarg($file), $tmp, $error); if ($error === 255) { $entry[] = $this->_status(false); $entry[] = 'The file ' . htmlspecialchars($key) . ' has PHP syntax errors:' . "\n
" . htmlspecialchars(trim(implode("\n", $tmp))) . '
'; } else { ob_start(); include $file; $parse_contents = trim(ob_get_clean()); if (strlen($parse_contents)) { $entry[] = $this->_status(false); $contents = file_get_contents($file); if (preg_match("/' . htmlspecialchars($key) . ' is outputting a non-empty string when parsed. Configuration files should not output anything. Output string:' . "\n
" . htmlspecialchars($parse_contents) . '
'; } else { $entry[] = 'The file ' . htmlspecialchars($key) . ' appears to be missing the \'_status(true); $check_local = true; } } } if ($check_local && !$is_local) { $local_file = preg_replace("/\.php$/", '.local.php', $key); if (file_exists($filedir . '/' . $local_file)) { $entry2 = $this->_requiredFileCheck(array( $local_file => null ), $php, true); } } } else { $entry[] = $this->_status(false); $entry[] = 'The file ' . htmlspecialchars($key) . ' is not readable by the web user.'; } } else { $entry[] = $this->_status(false); $entry[] = empty($val) ? 'The file ' . htmlspecialchars($key) . ' appears to be missing.' : $val; } $output .= $this->_outputLine($entry); if (!is_null($entry2)) { $output .= $entry2; } } return $output; } /** * Check the list of required Horde applications. * * @return string The HTML output. */ public function requiredAppCheck() { $output = ''; $horde_apps = $GLOBALS['registry']->listApps(null, true, null); foreach ($this->_appList as $key => $val) { $entry = array(); $entry[] = $key; if (!isset($horde_apps[$key])) { $entry[] = $this->_status(false, false); $entry[] = $val['error']; $entry[] = 1; } else { /* Strip '-git', and H# (ver) from version string. */ $origver = $GLOBALS['registry']->getVersion($key); $appver = preg_replace('/(H\d) \((.*)\)/', '$2', str_replace('-git', '', $origver)); if (version_compare($val['version'], $appver) === 1) { $entry[] = $this->_status(false, false) . ' (Have version: ' . $origver . '; Need version: ' . $val['version'] . ')'; $entry[] = $val['error']; $entry[] = 1; } else { $entry[] = $this->_status(true) . ' (Version: ' . $origver . ')'; } } $output .= $this->_outputLine($entry); } return $output; } /** * Obtain information on the PHP version. * * @return object stdClass TODO */ public function getPhpVersionInformation() { $output = new stdClass; $vers_check = true; $testscript = Horde::selfUrl(true); $output->phpinfo = $testscript->copy()->add('mode', 'phpinfo'); $output->extensions = $testscript->copy()->add('mode', 'extensions'); $output->version = PHP_VERSION; $output->major = $this->_phpver['major']; if (isset($this->_phpver['minor'])) { $output->minor = $this->_phpver['minor']; } if (isset($this->_phpver['subminor'])) { $output->subminor = $this->_phpver['subminor']; } $output->class = $this->_phpver['class']; $output->status_color = 'red'; if ($output->major < '5.3') { $output->status = 'This version of PHP is not supported. You need to upgrade to a more recent version.'; $vers_check = false; } elseif (in_array($output->major, $this->_supported)) { $output->status = 'You are running a supported version of PHP.'; $output->status_color = 'green'; } else { $output->status = 'This version of PHP has not been fully tested with this version of Horde.'; $output->status_color = 'orange'; } if (!$vers_check) { $output->version_check = 'Horde requires PHP 5.3.0 or greater.'; } return $output; } /** * Output the results of a status check. * * @param boolean $bool The result of the status check. * @param boolean $required Whether the checked item is required. * * @return string The HTML of the result of the status check. */ protected function _status($bool, $required = true) { if ($bool) { return 'Yes'; } elseif ($required) { return 'No'; } return 'No'; } /** * Internal output function. * * @param array $entry Array with the following values: *
     * 1st value: Header
     * 2nd value: Test Result
     * 3rd value: Error message (if present)
     * 4th value: Error level (if present): 0 = error, 1 = warning
     * 
* * @return string HTML output. */ protected function _outputLine($entry) { $output = '
  • ' . array_shift($entry) . ': ' . array_shift($entry); if (!empty($entry)) { $msg = array_shift($entry); $output .= '
    ' . $msg . "\n"; } return $output . "
  • \n"; } /** * Any application specific tests that need to be done. * * @return string HTML output. */ public function appTests() { /* File upload information. */ $upload_check = $this->phpSettingCheck(array( 'file_uploads' => array( 'error' => 'file_uploads must be enabled for some features like sending emails with IMP.', 'setting' => true ) )); $upload_tmp_dir = ($dir = ini_get('upload_tmp_dir')) ? '
  • upload_tmp_dir: ' . $dir . '
  • ' : ''; $ret = '

    File Uploads

      ' . $upload_check . $upload_tmp_dir . '
    • upload_max_filesize: ' . ini_get('upload_max_filesize') . '
    • '. '
    • post_max_size: ' . ini_get('post_max_size') . '
      ' . 'This value should be several times the expect largest upload size (notwithstanding any upload limits present in an application). Any upload that exceeds this size will cause any state information sent along with the uploaded data to be lost. This is a PHP limitation and can not be worked around.'. '
    '; /* Determine if 'static' is writable by the web user. */ $user = function_exists('posix_getuid') ? posix_getpwuid(posix_getuid()) : null; $ret .= '

    Local File Permissions

      ' . sprintf('
    • Is %s/static writable by the web server user%s? ', htmlspecialchars(HORDE_BASE), $user ? (' (' . $user['name'] . ')') : ''); $ret .= is_writable(HORDE_BASE . '/static') ? 'Yes' : 'No
      If caching javascript and CSS files by storing them in static files (HIGHLY RECOMMENDED), this directory must be writable as the user the web server runs as%s.'; if (extension_loaded('imagick')) { $im = new Imagick(); $imagick = is_callable(array($im, 'getIteratorIndex')); $ret .= '

    Imagick

      ' . '
    • Imagick compiled against current ImageMagick version: Yes' : 'red">No') . ''; } return $ret . '
    '; } } tmpjWNuGb/horde-5.1.5/lib/Api.php0000644000175000017500000005320212233761316016350 0ustar mathieumathieu array( 'link' => '%application%/admin/config/', 'name' => _("_Configuration"), 'icon' => 'config' ), 'users' => array( 'link' => '%application%/admin/user.php', 'name' => _("_Users"), 'icon' => 'user' ), 'groups' => array( 'link' => '%application%/admin/groups.php', 'name' => _("_Groups"), 'icon' => 'group' ), 'perms' => array( 'link' => '%application%/admin/perms/', 'name' => _("_Permissions"), 'icon' => 'perms' ), 'locks' => array( 'link' => '%application%/admin/locks.php', 'name' => _("_Locks"), 'icon' => 'locked' ), 'alarms' => array( 'link' => '%application%/admin/alarms.php', 'name' => _("_Alarms"), 'icon' => 'alarm' ), 'sessions' => array( 'link' => '%application%/admin/sessions.php', 'name' => _("Sessions"), 'icon' => 'user' ), 'phpshell' => array( 'link' => '%application%/admin/phpshell.php', 'name' => _("P_HP Shell"), 'icon' => 'php' ), 'sqlshell' => array( 'link' => '%application%/admin/sqlshell.php', 'name' => _("S_QL Shell"), 'icon' => 'sql' ), 'cmdshell' => array( 'link' => '%application%/admin/cmdshell.php', 'name' => _("_CLI"), 'icon' => 'shell' ) ); if (!empty($GLOBALS['conf']['activesync']['enabled'])) { $admin['activesync'] = array( 'link' => '%application%/admin/activesync.php', 'name' => _("ActiveSync Devices"), 'icon' => 'mobile' ); } return $admin; } /** * Returns a list of the installed and registered applications. * * @param array $filter An array of the statuses that should be returned. * Defaults to non-hidden. * * @return array List of apps registered with Horde. If no applications * are defined returns an empty array. */ public function listApps($filter = null) { return $GLOBALS['registry']->listApps($filter); } /** * Returns all available registry APIs. * * @return array The API list. */ public function listAPIs() { return $GLOBALS['registry']->listAPIs(); } /* Blocks. */ /** * Returns a Horde_Block's title. * * @param string $app The block application name. * @param string $name The block name (NOT the class name). * @param array $params Block parameters. * * @return string The block title. */ public function blockTitle($app, $name, $params = array()) { $class = $app . '_Block_' . basename($name); try { return $GLOBALS['injector']->getInstance('Horde_Core_Factory_BlockCollection')->create()->getBlock($app, $class, $params)->getTitle(); } catch (Horde_Exception $e) { return $e->getMessage(); } } /** * Returns a Horde_Block's content. * * @param string $app The block application name. * @param string $name The block name (NOT the classname). * @param array $params Block parameters. * * @return string The block content. */ public function blockContent($app, $name, $params = array()) { $class = $app . '_Block_' . basename($name); try { return $GLOBALS['injector']->getInstance('Horde_Core_Factory_BlockCollection')->create()->getBlock($app, $class, $params)->getContent(); } catch (Horde_Exception $e) { return $e->getMessage(); } } /** * Returns a pretty printed list of all available blocks. * * @return array A hash with block IDs as keys and application plus block * block names as values. */ public function blocks() { return $GLOBALS['injector']->getInstance('Horde_Core_Factory_BlockCollection')->create()->getBlocksList(); } /* User data. */ /** * Returns the value of the requested preference. * * @param string $app The application of the preference to retrieve. * @param string $pref The name of the preference to retrieve. * * @return string The value of the preference, null if it doesn't exist. */ public function getPreference($app, $pref) { $pushed = $GLOBALS['registry']->pushApp($app); $GLOBALS['registry']->loadPrefs($app); $value = $GLOBALS['prefs']->getValue($pref); if ($pushed) { $GLOBALS['registry']->popApp(); } return $value; } /** * Sets a preference to the specified value, if the preference is allowed * to be modified. * * @param string $app The application of the preference to modify. * @param string $pref The name of the preference to modify. * @param string $val The new value for this preference. */ public function setPreference($app, $pref, $value) { $pushed = $GLOBALS['registry']->pushApp($app); $GLOBALS['registry']->loadPrefs($app); $value = $GLOBALS['prefs']->setValue($pref, $value); if ($pushed) { $GLOBALS['registry']->popApp(); } } /** * Removes user data. * * @param string $user Name of user to remove data for. * @param string $app Remove data from this application. If boolean * true, removes all applications. If boolean false, * removes only base Horde data. * * @throws Horde_Exception */ public function removeUserData($user, $app = false) { if ($app === true) { $app = null; } elseif ($app === false || !strlen($app)) { $app = false; } $GLOBALS['registry']->removeUserData($user, $app); if ($GLOBALS['conf']['activesync']['enabled']) { $GLOBALS['injector']->getInstance('Horde_ActiveSyncState') ->removeState(array('user' => $user)); } } /* Groups. */ /** * Adds a group to the groups system. * * @param string $name The group's name. * * @return mixed The group's ID. * @throws Horde_Exception */ public function addGroup($name) { if (!$GLOBALS['registry']->isAdmin()) { throw new Horde_Exception(_("You are not allowed to add groups.")); } return $GLOBALS['injector'] ->getInstance('Horde_Group') ->create($name); } /** * Removes a group from the groups system. * * @param mixed $group The group ID. * * @throws Horde_Exception */ public function removeGroup($group) { if (!$GLOBALS['registry']->isAdmin()) { throw new Horde_Exception(_("You are not allowed to delete groups.")); } $GLOBALS['injector']->getInstance('Horde_Group')->remove($group); } /** * Adds a user to a group. * * @param mixed $group The group ID. * @param string $user The user to add. * * @throws Horde_Exception */ public function addUserToGroup($group, $user) { if (!$GLOBALS['registry']->isAdmin()) { throw new Horde_Exception(_("You are not allowed to change groups.")); } $GLOBALS['injector'] ->getInstance('Horde_Group') ->addUser($group, $user); } /** * Removes a user from a group. * * @param mixed $group The group ID. * @param string $user The user to add. * * @throws Horde_Exception */ public function removeUserFromGroup($group, $user) { if (!$GLOBALS['registry']->isAdmin()) { throw new Horde_Exception(_("You are not allowed to change groups.")); } $GLOBALS['injector'] ->getInstance('Horde_Group') ->removeUser($group, $user); } /** * Returns a list of users that are part of this group (and only this * group). * * @param mixed $group The group ID. * * @return array The user list. * @throws Horde_Exception */ public function listUsersOfGroup($group) { if (!$GLOBALS['registry']->isAdmin()) { throw new Horde_Exception(_("You are not allowed to list users of groups.")); } return $GLOBALS['injector'] ->getInstance('Horde_Group') ->listUsers($group); } /* Shares. */ /** * Adds a share to the shares system. * * @param string $scope The name of the share root, e.g. the * application that the share belongs to. * @param string $shareName The share's name. * @param string $shareTitle The share's human readable title. * @param string $userName The share's owner. * * @throws Horde_Exception */ public function addShare($scope, $shareName, $shareTitle, $userName) { if (!$GLOBALS['registry']->isAdmin()) { throw new Horde_Exception(_("You are not allowed to add shares.")); } $shares = $GLOBALS['injector']->getInstance('Horde_Core_Factory_Share')->create($scope); $share = $shares->newShare($GLOBALS['registry']->getAuth(), $shareName, $shareTitle); $share->set('owner', $userName); $shares->addShare($share); } /** * Removes a share from the shares system permanently. * * @param string $scope The name of the share root, e.g. the * application that the share belongs to. * @param string $shareName The share's name. * * @throws Horde_Exception */ public function removeShare($scope, $shareName) { if (!$GLOBALS['registry']->isAdmin()) { throw new Horde_Exception(_("You are not allowed to delete shares.")); } $shares = $GLOBALS['injector']->getInstance('Horde_Core_Factory_Share')->create($scope); $share = $shares->getShare($shareName); $shares->removeShare($share); } /** * Returns an array of all shares that $userName is the owner of. * * @param string $scope The name of the share root, e.g. the * application that the share belongs to. * @param string $userName The share's owner. * * @return array The list of shares. * @throws Horde_Exception */ public function listSharesOfOwner($scope, $userName) { if (!$GLOBALS['registry']->isAdmin()) { throw new Horde_Exception(_("You are not allowed to list shares.")); } $shares = $GLOBALS['injector']->getInstance('Horde_Core_Factory_Share')->create($scope); $share_list = $shares->listShares($userName, array('perm' => Horde_Perms::SHOW, 'attributes' => $userName)); $myshares = array(); foreach ($share_list as $share) { $myshares[] = $share->getName(); } return $myshares; } /** * Gives a user certain privileges for a share. * * @param string $scope The name of the share root, e.g. the * application that the share belongs to. * @param string $shareName The share's name. * @param string $userName The user's name. * @param array $permissions A list of permissions (show, read, edit, * delete). * * @throws Horde_Exception */ public function addUserPermissions($scope, $shareName, $userName, $permissions) { if (!$GLOBALS['registry']->isAdmin()) { throw new Horde_Exception(_("You are not allowed to change shares.")); } $share = $GLOBALS['injector'] ->getInstance('Horde_Core_Factory_Share') ->create($scope) ->getShare($shareName); $perm = $share->getPermission(); foreach ($permissions as $permission) { $permission = Horde_String::upper($permission); if (defined('Horde_Perms::' . $permission)) { $perm->addUserPermission($userName, constant('Horde_Perms::' . $permission), false); } } $share->setPermission($perm); } /** * Gives a group certain privileges for a share. * * @param string $scope The name of the share root, e.g. the * application that the share belongs to. * @param string $shareName The share's name. * @param mixed $groupId The group ID. * @param array $permissions A list of permissions (show, read, edit, * delete). * * @throws Horde_Exception */ public function addGroupPermissions($scope, $shareName, $groupId, $permissions) { if (!$GLOBALS['registry']->isAdmin()) { throw new Horde_Exception(_("You are not allowed to change shares.")); } $share = $GLOBALS['injector'] ->getInstance('Horde_Core_Factory_Share') ->create($scope) ->getShare($shareName); $perm = $share->getPermission(); foreach ($permissions as $permission) { $permission = Horde_String::upper($permission); if (defined('Horde_Perms::' . $permission)) { $perm->addGroupPermission($groupId, constant('Horde_Perms::' . $permission), false); } } $share->setPermission($perm); } /** * Removes a user from a share. * * @param string $scope The name of the share root, e.g. the * application that the share belongs to. * @param string $shareName The share's name. * @param string $userName The user's name. * * @throws Horde_Exception */ public function removeUserPermissions($scope, $shareName, $userName) { if (!$GLOBALS['registry']->isAdmin()) { throw new Horde_Exception(_("You are not allowed to change shares.")); } $shares = $GLOBALS['injector']->getInstance('Horde_Core_Factory_Share')->create($scope); $share = $shares->getShare($shareName); $share->removeUser($userName); } /** * Removes a group from a share. * * @param string $scope The name of the share root, e.g. the * application that the share belongs to. * @param string $shareName The share's name. * @param mixed $groupId The group ID. * * @throws Horde_Exception */ public function removeGroupPermissions($scope, $shareName, $groupId) { if (!$GLOBALS['registry']->isAdmin()) { throw new Horde_Exception(_("You are not allowed to change shares.")); } $shares = $GLOBALS['injector']->getInstance('Horde_Core_Factory_Share')->create($scope); $share = $shares->getShare($shareName); $share->removeGroup($groupId); } /** * Returns an array of all user permissions on a share. * * @param string $scope The name of the share root, e.g. the * application that the share belongs to. * @param string $shareName The share's name. * @param string $userName The user's name. * * @return array All user permissions for this share. * @throws Horde_Exception */ public function listUserPermissions($scope, $shareName, $userName) { if (!$GLOBALS['registry']->isAdmin()) { throw new Horde_Exception(_("You are not allowed to list share permissions.")); } $perm_map = array(Horde_Perms::SHOW => 'show', Horde_Perms::READ => 'read', Horde_Perms::EDIT => 'edit', Horde_Perms::DELETE => 'delete'); $shares = $GLOBALS['injector']->getInstance('Horde_Core_Factory_Share')->create($scope); $share = $shares->getShare($shareName); $perm = $share->getPermission(); $permissions = $perm->getUserPermissions(); if (empty($permissions[$userName])) { return array(); } $user_permissions = array(); foreach (array_keys(Horde_Perms::integerToArray($permissions[$userName])) as $permission) { $user_permissions[] = $perm_map[$permission]; } return $user_permissions; } /** * Returns an array of all group permissions on a share. * * @param string $scope The name of the share root, e.g. the * application that the share belongs to. * @param string $shareName The share's name. * @param string $groupName The group's name. * * @return array All group permissions for this share. * @throws Horde_Exception */ public function listGroupPermissions($scope, $shareName, $groupName) { if (!$GLOBALS['registry']->isAdmin()) { throw new Horde_Exception(_("You are not allowed to list share permissions.")); } $perm_map = array(Horde_Perms::SHOW => 'show', Horde_Perms::READ => 'read', Horde_Perms::EDIT => 'edit', Horde_Perms::DELETE => 'delete'); $shares = $GLOBALS['injector']->getInstance('Horde_Core_Factory_Share')->create($scope); $share = $shares->getShare($shareName); $perm = $share->getPermission(); $permissions = $perm->getGroupPermissions(); if (empty($permissions[$groupName])) { return array(); } $group_permissions = array(); foreach (array_keys(Horde_Perms::integerToArray($permissions[$groupName])) as $permission) { $group_permissions[] = $perm_map[$permission]; } return $group_permissions; } /** * Returns a list of users which have have certain permissions on a share. * * @param string $scope The name of the share root, e.g. the * application that the share belongs to. * @param string $shareName The share's name. * @param array $permissions A list of permissions (show, read, edit, * delete). * * @return array List of users with the specified permissions. * @throws Horde_Exception */ public function listUsersOfShare($scope, $shareName, $permissions) { if (!$GLOBALS['registry']->isAdmin()) { throw new Horde_Exception(_("You are not allowed to list users of shares.")); } $shares = $GLOBALS['injector']->getInstance('Horde_Core_Factory_Share')->create($scope); $share = $shares->getShare($shareName); $perm = 0; foreach ($permissions as $permission) { $permission = Horde_String::upper($permission); if (defined('Horde_Perms::' . $permission)) { $perm &= constant('Horde_Perms::' . $permission); } } return $share->listUsers($perm); } /** * Returns a list of groups which have have certain permissions on a * share. * * @param string $scope The name of the share root, e.g. the * application that the share belongs to. * @param string $shareName The share's name. * @param array $permissions A list of permissions (show, read, edit, * delete). * * @return array List of groups with the specified permissions. * @throws Horde_Exception */ public function listGroupsOfShare($scope, $shareName, $permissions) { if (!$GLOBALS['registry']->isAdmin()) { throw new Horde_Exception(_("You are not allowed to list groups of shares.")); } $shares = $GLOBALS['injector']->getInstance('Horde_Core_Factory_Share')->create($scope); $share = $shares->getShare($shareName); $perm = 0; foreach ($permissions as $permission) { $permission = Horde_String::upper($permission); if (defined('Horde_Perms::' . $permission)) { $perm &= constant('Horde_Perms::' . $permission); } } return $share->listGroups($perm); } } tmpjWNuGb/horde-5.1.5/lib/core.php0000644000175000017500000000436712233761316016577 0ustar mathieumathieuaddClassPathMapper(new Horde_Autoloader_ClassPathMapper_Prefix('/^Horde(?:$|_)/i', $dirname)); /* Sanity checking - if we can't even load the Horde_ErrorHandler file, then * the installation is all sorts of busted. */ if (!class_exists('Horde_ErrorHandler')) { exit('Cannot find base Horde directories. Please reinstall Horde and/or correctly configure the install paths.'); } /* Default exception handler for uncaught exceptions. The default fatal * exception handler output may include things like passwords, etc. so don't * output this unless an admin. */ set_exception_handler(array('Horde_ErrorHandler', 'fatal')); /* Catch errors. */ set_error_handler(array('Horde_ErrorHandler', 'errorHandler'), E_ALL | E_STRICT); tmpjWNuGb/horde-5.1.5/lib/.htaccess0000644000175000017500000000001612233761316016717 0ustar mathieumathieuDeny from all tmpjWNuGb/horde-5.1.5/lib/View/0000755000175000017500000000000012262230550016027 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/lib/View/Topbar.php0000644000175000017500000001105212233761316017775 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ class Horde_View_Topbar extends Horde_View { /** * Constructor. * * @param array $config Configuration key-value pairs. */ public function __construct($config = array()) { global $injector, $prefs, $registry, $session; if (empty($config['templatePath'])) { $config['templatePath'] = $registry->get('templates', 'horde') . '/topbar'; } parent::__construct($config); $this->addHelper('Text'); /* Logo. */ $this->portalUrl = $registry->getServiceLink( 'portal', $registry->getApp()); if (class_exists('Horde_Bundle')) { $this->version = Horde_Bundle::SHORTNAME . ' ' . Horde_Bundle::VERSION; } else { $this->version = $registry->getVersion('horde'); } /* Main menu. */ $topbar = $injector->getInstance('Horde_Core_Factory_Topbar') ->create('Horde_Tree_Renderer_Menu', array('nosession' => true)); $this->menu = $topbar->getTree(); /* Search form. */ $this->searchAction = '#'; $this->searchIcon = Horde_Themes::img('search-topbar.png'); $this->searchLabel = _("Search"); /* Login/Logout. */ if ($registry->getAuth()) { if ($registry->showService('logout')) { $this->logoutUrl = $registry->getServiceLink( 'logout', $registry->getApp() ) ->setRaw(false); } } else { if ($registry->showService('login')) { $this->loginUrl = $registry->getServiceLink( 'login', $registry->getApp() ) ->setRaw(false) ->add('url', Horde::selfUrl(true, true, true)); } } /* Sub bar. */ $this->date = strftime($prefs->getValue('date_format')); $pageOutput = $injector->getInstance('Horde_PageOutput'); $pageOutput->addScriptPackage('Datejs'); $pageOutput->addScriptFile('topbar.js', 'horde'); $pageOutput->addInlineJsVars(array('HordeTopbar.conf' => array( /* Need explicit URI here, since topbar may be running in * an application's scope. */ 'URI_AJAX' => $registry->getServiceLink('ajax', 'horde')->url, 'app' => $registry->getApp(), 'format' => Horde_Core_Script_Package_Datejs::translateFormat($prefs->getValue('date_format')), 'hash' => $topbar->getHash(), 'refresh' => intval($prefs->getValue('menu_refresh_time')) ))); /* Sidebar. */ $this->sidebarWidth = $prefs->getValue('sidebar_width'); } /** * Returns the HTML code for the topbar. * * @param string $name The template to process. * * @return string The topbar's HTML code. */ public function render($name = 'topbar', $locals = array()) { if ($this->search) { $GLOBALS['injector']->getInstance('Horde_PageOutput') ->addScriptFile('form_ghost.js', 'horde'); if (!isset($this->searchParameters)) { $action = new Horde_Url($this->searchAction); $this->searchAction = $action->url; $this->searchParameters = $action->parameters; } } $this->sidebar = $GLOBALS['page_output']->sidebar; return parent::render($name, $locals); } /** * Handler for string casting. * * @return string The sidebar's HTML code. */ public function __toString() { return $this->render(); } } tmpjWNuGb/horde-5.1.5/lib/View/Sidebar.php0000644000175000017500000002121612233761316020122 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ class Horde_View_Sidebar extends Horde_View { /** * Constructor. * * @param array $config Configuration key-value pairs. */ public function __construct($config = array()) { if (empty($config['templatePath'])) { $config['templatePath'] = $GLOBALS['registry']->get('templates', 'horde') . '/sidebar'; } parent::__construct($config); $this->addHelper('Text'); $this->containers = array(); $this->width = $GLOBALS['prefs']->getValue('sidebar_width'); $this->left = ($GLOBALS['registry']->nlsconfig->curr_rtl ? 'right:' : 'left:') . $this->width; $pageOutput = $GLOBALS['injector']->getInstance('Horde_PageOutput'); $pageOutput->addScriptFile('sidebar.js', 'horde'); $pageOutput->addInlineJsVars(array( 'HordeSidebar.text' => array( 'collapse' => _("Collapse"), 'expand' => _("Expand"), ), 'HordeSidebar.opts' => array( 'cookieDomain' => $GLOBALS['conf']['cookie']['domain'], 'cookiePath' => $GLOBALS['conf']['cookie']['path'], ), )); } /** * Returns the HTML code for the sidebar. * * @param string $name The template to process. * * @return string The sidebar's HTML code. */ public function render($name = 'sidebar', $locals = array()) { $effects = false; foreach ($this->containers as $id => &$container) { if (!isset($container['header'])) { continue; } if (isset($container['header']['id'])) { $id = $container['header']['id']; } if (isset($_COOKIE['horde_sidebar_c_' . $id])) { $container['header']['collapsed'] = !empty($_COOKIE['horde_sidebar_c_' . $id]); } $effects = true; } if ($effects) { $GLOBALS['injector'] ->getInstance('Horde_PageOutput') ->addScriptFile('scriptaculous/effects.js', 'horde'); } $this->containers = array_values($this->containers); return parent::render($name, $locals); } /** * Handler for string casting. * * @return string The sidebar's HTML code. */ public function __toString() { return $this->render(); } /** * Adds a "New ..." button to the sidebar. * * @param string $label The button text, including access key. * @param string $url The button URL. * @param array $extra Extra attributes for the link tag. */ public function addNewButton($label, $url, $extra = array()) { $ak = Horde::getAccessKey($label); $attributes = $ak ? Horde::getAccessKeyAndTitle($label, true, true) : array(); $this->newLink = $url->link($attributes + $extra); $this->newText = Horde::highlightAccessKey($label, $ak); } /** * Adds a row to the sidebar. * * If containers/sections are not added explicitly to the view * through the "containers" property, these rows will be used * instead. * * @param array $row A hash with the row information. Possible * values: * - label: (string) The row text. * - selected: (boolean) Whether to mark the row as active. * - style: (string) Additional CSS styles to apply to the row. * - url (string) URL to link the row to. * - type (string, optional) The row type, defaults to "tree". Further * $row properties depending on the type: * - tree: * - cssClass: (string) CSS class for the icon. * - id: (string) DOM ID for the row link. * - checkbox: * - radiobox: * - color: (string, optional) Background color. * - edit: (string, optional) URL for extra edit icon. * @param string $container If using multiple sidebar sections, the ID of * the section to add the row to. Sections will * be rendered in the order of their first usage. */ public function addRow(array $row, $container = '') { if (!isset($this->containers[$container])) { $this->containers[$container] = array('rows' => array()); if ($container) { $this->containers[$container]['id'] = $container; } } $boxrow = isset($row['type']) && ($row['type'] == 'checkbox' || $row['type'] == 'radiobox'); $label = htmlspecialchars($row['label']); if (isset($row['url'])) { $ak = Horde::getAccessKey($label); $url = empty($row['url']) ? new Horde_Url() : $row['url']; $attributes = $ak ? array('accesskey' => $ak) : array(); foreach (array('onclick', 'target', 'class') as $attribute) { if (!empty($row[$attribute])) { $attributes[$attribute] = $row[$attribute]; } } if ($boxrow) { $class = 'horde-resource-' . (empty($row['selected']) ? 'off' : 'on'); if ($row['type'] == 'radiobox') { $class .= ' horde-radiobox'; } if (empty($attributes['class'])) { $attributes['class'] = $class; } else { $attributes['class'] .= ' ' . $class; } } $row['link'] = $url->link($attributes) . Horde::highlightAccessKey($label, $ak) . ''; } else { $row['link'] = '' . $label . ''; } if ($boxrow) { $this->containers[$container]['type'] = $row['type']; if (!isset($row['style'])) { $row['style'] = ''; } if (!isset($row['color'])) { $row['color'] = '#dddddd'; } $foreground = '000'; if (Horde_Image::brightness($row['color']) < 128) { $foreground = 'fff'; } if (strlen($row['style'])) { $row['style'] .= ';'; } $row['style'] .= 'background-color:' . $row['color'] . ';color:#' . $foreground; if (isset($row['edit'])) { $row['editLink'] = $row['edit'] ->link(array( 'title' => _("Edit"), 'class' => 'horde-resource-edit-' . $foreground)) . '►' . ''; } } $this->containers[$container]['rows'][] = $row; } } tmpjWNuGb/horde-5.1.5/lib/Block/0000755000175000017500000000000012262230550016147 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/lib/Block/Account.php0000644000175000017500000000765612233761316020301 0ustar mathieumathieu * @author Jan Schneider * @package Horde */ class Horde_Block_Account extends Horde_Core_Block { /** */ public function __construct($app, $params = array()) { parent::__construct($app, $params); $this->_name = _("Account Information"); } /** */ protected function _title() { return _("My Account Information"); } /** */ protected function _content() { global $registry, $conf; $params = array_merge( (array)$conf['accounts']['params'], array('user' => $registry->getAuth())); switch ($conf['accounts']['driver']) { case 'null': $mydriver = new Horde_Block_Account_Base($params); break; case 'localhost': case 'finger': //case 'kolab': $class = 'Horde_Block_Account_' . Horde_String::ucfirst($conf['accounts']['driver']); $mydriver = new $class($params); break; case 'ldap': $params = Horde::getDriverConfig('accounts', 'ldap'); $params['ldap'] = $GLOBALS['injector'] ->getInstance('Horde_Core_Factory_Ldap') ->create('horde', 'accounts'); $params['user'] = $registry->getAuth($params['strip'] ? 'bare' : null); $mydriver = new Horde_Block_Account_Ldap($params); break; default: return ''; } try { // Check for password status. $status = $mydriver->checkPasswordStatus(); $table = array(_("User Name") => $mydriver->getUsername()); if ($fullname = $mydriver->getFullname()) { $table[_("Full Name")] = $fullname; } if ($home = $mydriver->getHome()) { $table[_("Home Directory")] = $home; } if ($shell = $mydriver->getShell()) { $table[_("Default Shell")] = $shell; } if ($quota = $mydriver->getQuota()) { $table[_("Quota")] = sprintf( _("%.2fMB used of %.2fMB allowed (%.2f%%)"), $quota['used'] / ( 1024 * 1024.0), $quota['limit'] / ( 1024 * 1024.0), ($quota['used'] * 100.0) / $quota['limit']); } if ($lastchange = $mydriver->getPasswordChange()) { $table[_("Last Password Change")] = $lastchange; } } catch (Horde_Exception $e) { return $e->getMessage(); } $output = ''; if ($status) { $output .= ''; } foreach ($table as $key => $value) { $output .= "\n"; } $output .= "

    ' . Horde::img('alerts/warning.png', _("Warning")) . '  ' . $status . '

    $key$value
    \n"; if (!$registry->isInactive('forwards') && $registry->hasMethod('summary', 'forwards')) { try { $summary = $registry->callByPackage('forwards', 'summary'); $output .= '
    ' . $summary . "\n"; } catch (Exception $e) { } } if (!$registry->isInactive('vacation') && $registry->hasMethod('summary', 'vacation')) { try { $summary = $registry->callByPackage('vacation', 'summary'); $output .= '
    ' . $summary . "\n"; } catch (Exception $e) { } } return $output; } } tmpjWNuGb/horde-5.1.5/lib/Block/Weather.php0000644000175000017500000003305112233761316020270 0ustar mathieumathieu * @license http://www.horde.org/licenses/bsd BSD * @package Horde */ /** * Horde_Block_Weather * * @author Michael J Rubinsky * @package Horde */ class Horde_Block_Weather extends Horde_Core_Block { /** */ public $updateable = true; protected $_refreshParams; /** */ public function __construct($app, $params = array()) { // @TODO: Check config key etc... parent::__construct($app, $params); $this->_name = _("weather"); } /** * Handle user initiated block refresh. Set a private member to avoid * BC issues with having to add a parameter to the _content method. * * @param Horde_Variables $vars * * @return string */ public function refreshContent($vars = null) { $this->_refreshParams = $vars; return $this->_content(); } /** */ protected function _title() { return _("Weather"); } /** */ protected function _params() { $weather = $GLOBALS['injector'] ->getInstance('Horde_Weather'); $lengths = $weather->getSupportedForecastLengths(); return array( 'location' => array( 'type' => 'text', 'name' => _("Location"), 'default' => 'Boston,MA' ), 'units' => array( 'type' => 'enum', 'name' => _("Units"), 'default' => 'standard', 'values' => array( Horde_Service_Weather::UNITS_STANDARD => _("English"), Horde_Service_Weather::UNITS_METRIC => _("Metric") ) ), 'days' => array( 'type' => 'enum', 'name' => _("Forecast Days (note that the returned forecast returns both day and night; a large number here could result in a wide block)"), 'default' => 3, 'values' => $lengths ), 'detailedForecast' => array( 'type' => 'checkbox', 'name' => _("Display detailed forecast"), 'default' => 0 ) ); } /** */ protected function _content() { $weather = $GLOBALS['injector'] ->getInstance('Horde_Weather'); // Set the requested units. $weather->units = $this->_params['units']; if (!empty($this->_refreshParams) && !empty($this->_refreshParams->location)) { $location = $this->_refreshParams->location; $html = ''; $instance = ''; } else { $instance = hash('md5', mt_rand()); $GLOBALS['injector'] ->getInstance('Horde_Core_Factory_Imple') ->create( 'WeatherLocationAutoCompleter', array( 'id' => 'location' . $instance, 'instance' => $instance ) ); $html = '
    '; $location = $this->_params['location']; } // Test location try { $location = $weather->searchLocations($location); } catch (Horde_Service_Weather_Exception $e) { return $e->getMessage(); } $html .= '
    '; if (is_array($location)) { // Several locations returned due to imprecise location parameter. $html = sprintf(_("Several locations possible with the parameter: %s"), $this->_params['location']) . '
    '; foreach ($location as $real_location) { $html .= '
  • ' . $real_location->city . ', ' . $real_location->state . '(' . $real_location->code . ")
  • \n"; } $html .= ''; return $html; } try { $forecast = $weather->getForecast($location->code, $this->_params['days']); $station = $weather->getStation(); $current = $weather->getCurrentConditions($location->code); } catch (Horde_Service_Weather_Exception $e) { return $e->getMessage(); } // Units to display as $units = $weather->getUnits($weather->units); // Location and local time. $html .= '
    ' . '' . $station->name . ''; if ($current->time->timestamp()) { $html .= ' ' . sprintf(_("Local time: %s %s"), $current->time->strftime($GLOBALS['prefs']->getValue('date_format')), $current->time->strftime($GLOBALS['prefs']->getValue('time_format'))); } $html .= '
    '; $html .= '
    '; // Sunrise/sunset. if ($station->sunrise) { $html .= '' . _("Sunrise") . ': ' . Horde::img('block/sunrise/sunrise.png', _("Sunrise")) . sprintf("%s %s", $station->sunrise->strftime($GLOBALS['prefs']->getValue('date_format')), $station->sunrise->strftime($GLOBALS['prefs']->getValue('time_format'))); $html .= ' ' . _("Sunset") . ': ' . Horde::img('block/sunrise/sunset.png', _("Sunset")) . sprintf("%s %s", $station->sunset->strftime($GLOBALS['prefs']->getValue('date_format')), $station->sunset->strftime($GLOBALS['prefs']->getValue('time_format'))); $html .= '
    '; } // Temperature. $html .= '' . _("Temperature") . ': ' . $current->temp . '°' . Horde_String::upper($units['temp']); // Dew point. if (is_numeric($current->dewpoint)) { $html .= ' ' . _("Dew point") . ': ' . round($current->dewpoint) . '°' . Horde_String::upper($units['temp']); } // Feels like temperature. // @TODO: Need to parse if wind chill/heat index etc.. // $html .= ' ' . _("Feels like: ") . '' . // round($weather['feltTemperature']) . '°' . Horde_String::upper($units['temp']); // Pressure and trend. if ($current->pressure) { $html .= '
    ' . _("Pressure") . ': '; $trend = $current->pressure_trend; if (empty($trend)) { $html .= sprintf('%d %s', round($current->pressure), $units['pres']); } else { $html .= sprintf(_("%d %s and %s"), round($current->pressure), $units['pres'], _($trend)); } } if ($current->wind_direction) { // Wind. $html .= '
    ' . _("Wind") . ': '; $html .= sprintf( _("From the %s (%s °) at %s %s"), $current->wind_direction, $current->wind_degrees, $current->wind_speed, $units['wind']); if ($current->wind_gust > 0) { $html .= ', ' . _("gusting") . ' ' . $current->wind_gust . ' ' . $units['wind']; } } // Humidity. if ($current->humidity) { $html .= '
    ' . _("Humidity") . ': ' . $current->humidity; } if ($current->visibility) { // Visibility. $html .= ' ' . _("Visibility") . ': ' . round($current->visibility) . ' ' . $units['vis']; } // Current condition. $condition = $current->condition; $html .= '
    ' . _("Current condition") . ': ' . Horde::img(Horde_Themes::img('weather/32x32/' . $current->icon)) . ' ' . $condition . '
    '; // Forecast if ($this->_params['days'] > 0) { $html .= '
    ' . sprintf(_("%d-day forecast"), $this->_params['days']) . '
    '; $futureDays = 0; $html .= ''; // Headers. $html .= ''; $html .= ''; if (isset($this->_params['detailedForecast'])) { if (in_array(Horde_Service_Weather::FORECAST_FIELD_PRECIPITATION, $forecast->fields)) { $html .= ''; } if (in_array(Horde_Service_Weather::FORECAST_FIELD_HUMIDITY, $forecast->fields)) { $html .= ''; } if (in_array(Horde_Service_Weather::FORECAST_FIELD_WIND, $forecast->fields)) { $html .= ''; } } $html .= ''; $which = -1; foreach ($forecast as $day) { $which++; if ($which > $this->_params['days']) { break; } $html .= ''; // Day name. $html .= ''; // Forecast condition. $condition = $day->conditions; // Temperature. $html .= ''; // Condition. $html .= ''; if (isset($this->_params['detailedForecast'])) { if (in_array(Horde_Service_Weather::FORECAST_FIELD_PRECIPITATION, $forecast->fields)) { $html .= ''; } if (in_array(Horde_Service_Weather::FORECAST_FIELD_HUMIDITY, $forecast->fields)) { $html .= ''; } if (in_array(Horde_Service_Weather::FORECAST_FIELD_WIND, $forecast->fields)) { // Winds. if ($day->wind_direction) { $html .= ''; } else { $html .= ''; } } } $html .= ''; $futureDays++; } $html .= '
    ' . _("Day") . '' . sprintf(_("Temperature%s(%sHi%s/%sLo%s)"), '
    ', '', '', '', '') . '
    ' . _("Condition") . '' . sprintf(_("Precipitation%schance"), '
    ') . '
    ' . _("Humidity") . '' . _("Wind") . '
    '; if ($which == 0) { $html .= _("Today"); } elseif ($which == 1) { $html .= _("Tomorrow"); } else { $html .= strftime('%A', mktime(0, 0, 0, date('m'), date('d') + $futureDays, date('Y'))); } $html .= '
    ' . strftime('%b %d', mktime(0, 0, 0, date('m'), date('d') + $futureDays, date('Y'))) . '
    ' . '' . $day->high . '°' . Horde_String::upper($units['temp']) . '/' . '' . $day->low . '°' . Horde_String::upper($units['temp']) . '' . Horde::img(Horde_Themes::img('weather/32x32/' . $day->icon)) . '
    ' . $condition . '
    ' . ($day->precipitation_percent >= 0 ? $day->precipitation_percent . '%' : _("N/A")) . '' . ($day->humidity ? $day->humidity . '%': _("N/A")) . '' . ' ' . sprintf(_("From the %s at %s %s"), $day->wind_direction, $day->wind_speed, $units['wind']); if ($day->wind_gust && $day->wind_gust > $day->wind_speed) { $html .= ', ' . _("gusting") . ' ' . $day->wind_gust . ' ' . $units['wind']; } $html .= '' . _("N/A") . '
    '; } if ($weather->logo) { $html .= '
    ' . _("Weather data provided by") . ' ' . Horde::link( Horde::externalUrl($weather->link), $weather->title, '', '_blank', '', $weather->title) . Horde::img(new Horde_Themes_Image($weather->logo)) . '
    '; } else { $html .= '
    ' . _("Weather data provided by") . ' ' . Horde::link( Horde::externalUrl($weather->link), $weather->title, '', '_blank', '', $weather->title) . '' . $weather->title . '' . '
    '; } return $html . '
    '; } } tmpjWNuGb/horde-5.1.5/lib/Block/Account/0000755000175000017500000000000012262230550017543 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/lib/Block/Account/Finger.php0000644000175000017500000000557212233761316021506 0ustar mathieumathieu * @author Jan Schneider * @package Horde */ class Horde_Block_Account_Finger extends Horde_Block_Account_Base { /** * Constructor. * * @param array $params Hash containing connection parameters. */ public function __construct($params = array()) { $params = array_merge( array('finger_path' => 'finger'), $params); parent::__construct($params); } /** * Returns a hash with parsed account information. * * @param array $output Array of finger output strings * * @return array A hash with account details parsed from output */ protected function _parseAccount($output) { $info = array(); foreach ($output as $line) { if (preg_match('/^.*Name: (.*)$/', $line, $regs)) { $info['fullname'] = $regs[1]; } elseif (preg_match('/^Directory: (.*)Shell: (.*)$/', $line, $regs)) { $info['home'] = trim($regs[1]); $info['shell'] = $regs[2]; } } return $info; } /** * Returns the user account. * * @return array A hash with complete account details. */ protected function _getAccount() { if (!isset($this->_information)) { $user = Horde_String::lower($this->getUsername()); if (!empty($this->_params['host'])) { $user .= '@' . $this->_params['host']; } $command = $this->_params['finger_path'] . ' ' . escapeshellarg($user); exec($command, $output); $this->_information = $this->_parseAccount($output); } return $this->_information; } /** * Returns some user detail. * * @param string $what Which information to return. * * @return string The user's detail. */ protected function _get($what) { $information = $this->_getAccount(); return $information[$what]; } /** * Returns the user's full name. * * @return string The user's full name. */ public function getFullname() { return $this->_get('fullname'); } /** * Returns the user's home (login) directory. * * @return string The user's directory. */ public function getHome() { return $this->_get('home'); } /** * Returns the user's default shell. * * @return string The user's shell. */ public function getShell() { return $this->_get('shell'); } } tmpjWNuGb/horde-5.1.5/lib/Block/Account/Base.php0000644000175000017500000000431012233761316021133 0ustar mathieumathieu * @author Jan Schneider * @package Horde */ class Horde_Block_Account_Base { /** * Hash containing connection parameters. * * @var array */ protected $_params = array(); /** * Constructor. * * @param array $params Hash containing connection parameters. */ public function __construct(array $params = array()) { $this->_params = $params; } /** * Returns the username. * * @return string The lowercased username. * */ public function getUsername() { return Horde_String::lower($this->_params['user']); } /** * Returns the user's quota if available. * * @return array A quota array, elements are used bytes and limit bytes. */ public function getQuota() { return array(); } /** * Returns the user's full name. * * @return string The user's full name. */ public function getFullname() { return ''; } /** * Returns the user's home (login) directory. * * @return string The user's directory. */ public function getHome() { return ''; } /** * Returns the user's default shell. * * @return string The user's shell. */ public function getShell() { return ''; } /** * Returns the date of the user's last password change. * * @return string Date string. */ public function getPasswordChange() { return ''; } /** * Returns the status of the current password. * * @return string A string with a warning message if the password is about * to expire. */ public function checkPasswordStatus() { return ''; } } tmpjWNuGb/horde-5.1.5/lib/Block/Account/Localhost.php0000644000175000017500000001266012233761316022220 0ustar mathieumathieu * @author Jan Schneider * @package Horde */ class Horde_Block_Account_Localhost extends Horde_Block_Account_Base { /** * User information hash. * * @var array */ protected $_information; /** * Constructor. * * @param array $params Hash containing connection parameters. */ public function __construct($params = array()) { $params = array_merge( array('quota_path' => 'quota', 'grep_path' => 'grep'), $params); parent::__construct($params); } /** * Returns the user account from the posix information. * * @return array A hash with complete account details. * * @throws Horde_Exception if posix extension is missing. */ protected function _getAccount() { if (!isset($this->_information)) { // This won't work if we don't have posix extensions. if (!Horde_Util::extensionExists('posix')) { throw new Horde_Exception(_("POSIX extension is missing")); } $user = Horde_String::lower($this->getUsername()); $this->_information = posix_getpwnam($user); } return $this->_information; } /** * Returns the user's quota for servers with a unix quota command. * * This may require a modified "quota" command that allows the httpd * server account to get quotas for other users... It requires that your * web server and user server be the same server or at least have shared * authentication and file servers (e.g. via NIS/NFS). And last, it (as * written) requires the posix php extensions. * * If your quota command wraps the output onto two lines, then this module * will only work if you have a grep which supports the -A switch, and you * append an -A1 switch to your grep_path (e.g. '/bin/grep -A1'). * * @return array A quota array, elements are used bytes and limit bytes. * * @throws Horde_Exception if posix extension is missing. */ public function getQuota() { $information = $this->_getAccount(); $homedir = $information['dir']; // If we want mount point translations, then translate the login dir // name to a mount point. If not, then simply parse out the device // name from the login directory, and use that instead. if ($this->_params['translateMountPoint'] && file_exists($this->_params['translationTable'])) { $sysTab = File_Fstab::singleton($this->_params['translationTable']); do { $entry = $sysTab->getEntryForPath($homedir); $homedir = dirname($homedir); if ($homedir == '.' || empty($homedir)) { $homedir = '/'; } } while (is_a($entry, 'PEAR_Error')); $mountPoint = $entry->device; } else { $homedir = explode('/', $homedir); $mountPoint = '/' . $homedir[1]; } $cmdline = sprintf('%s -u %s 2>&1 | %s %s', $this->_params['quota_path'], $this->getUserName(), $this->_params['grep_path'], $mountPoint); exec($cmdline, $quota_data, $return_code); if ($return_code == 0 && !empty($quota_data[0])) { // In case of quota output wrapping on two lines, we concat the // second line of results, if any, here. if (!empty($quota_data[1])) { $quota_data[0] .= $quota_data[1]; } // Now parse out the quota info and return it. $quota = preg_split('/\s+/', trim($quota_data[0])); return array('used' => $quota[1] * 1024, 'limit' => $quota[2] * 1024); } return array(); } /** * Returns the user's full name. * * @return string The user's full name. * * @throws Horde_Exception if posix extension is missing. */ public function getFullname() { $information = $this->_getAccount(); $gecos_array = explode(',', $information['gecos']); return $gecos_array[0]; } /** * Returns the user's home (login) directory. * * @return string The user's directory. * * @throws Horde_Exception if posix extension is missing. */ public function getHome() { $information = $this->_getAccount(); return $information['dir']; } /** * Returns the user's default shell. * * @return string The user's shell. * * @throws Horde_Exception if posix extension is missing. */ public function getShell() { $information = $this->_getAccount(); return $information['shell']; } } tmpjWNuGb/horde-5.1.5/lib/Block/Account/Ldap.php0000644000175000017500000001702512233761316021150 0ustar mathieumathieu * @author Jan Schneider * @package Horde */ class Horde_Block_Account_Ldap extends Horde_Block_Account_Base { /** * Pointer to the LDAP connection. * * @var Horde_Ldap */ protected $_ldap; /** * User information hash. * * @var array */ protected $_information; /** * Constructor. * * @param array $params A hash containing connection parameters. */ public function __construct($params = array()) { $this->_ldap = $params['ldap']; unset($params['ldap']); parent::__construct($params); } /** * Returns the win32 AD epoch number of days the password may be unchanged. * * @return integer|boolean Number of days or false if no limit. */ protected function _getMaxPasswd() { $dn = Horde_Ldap_Util::explodeDN($this->_params['basedn']); $domaindn = array(); foreach ($dn as $rdn) { $attribute = Horde_Ldap_Util::splitAttributeString($rdn); if ($attribute[0] == 'DC') { $domaindn[] = $rdn; } } $dn = Horde_Ldap_Util::canonicalDN($domaindn); $search = $this->_ldap->search($domaindn, 'objectClass=*'); $entry = $search->shiftEntry(); try { return $entry->getValue('maxPwdAge', 'single'); } catch (Horde_Ldap_Exception $e) { return false; } } /** * Code from 'brudinie at yahoo dot co dot uk' at http://nl3.php.net/ldap/ * * @param integer $dateLargeInt The win32 active directory epoch time. * * @return integer A unix timestamp. */ protected function _convertWinTimeToUnix($dateLargeInt) { // Seconds since jan 1st 1601. $secsAfterADEpoch = $dateLargeInt / (10000000); // Unix epoch - AD epoch * number of tropical days * seconds in a day. $ADToUnixConvertor = ((1970 - 1601) * 365.242190) * 86400; return intval($secsAfterADEpoch - $ADToUnixConvertor); } /** * Returns the user account from the LDAP source. * * @return Horde_Ldap_Entry An entry with complete account details. * * @throws Horde_Exception if user not found. * @throws Horde_Ldap_Exception on LDAP errors. */ protected function _getAccount() { if (!isset($this->_information)) { $search = $this->_ldap->search($this->_params['basedn'], $this->_params['attr'] . '=' . $this->_params['user']); if (!$search->count()) { throw new Horde_Exception(_("User account not found")); } $this->_information = $search->shiftEntry(); } return $this->_information; } /** * Returns the user's full name. * * @return string The user's full name. * * @throws Horde_Exception if user not found. * @throws Horde_Ldap_Exception on LDAP errors. */ public function getFullname() { $information = $this->_getAccount(); try { return $information->getValue('cn', 'single'); } catch (Horde_Ldap_Exception $e) { return ''; } } /** * Returns the user's home (login) directory. * * @return string The user's directory. * * @throws Horde_Exception if user not found. * @throws Horde_Ldap_Exception on LDAP errors. */ public function getHome() { $information = $this->_getAccount(); try { return $information->getValue('homedirectory', 'single'); } catch (Horde_Ldap_Exception $e) { return ''; } } /** * Returns the user's default shell. * * @return string The user's shell. * * @throws Horde_Exception if user not found. * @throws Horde_Ldap_Exception on LDAP errors. */ public function getShell() { $information = $this->_getAccount(); try { return $information->getValue('useraccountcontrol', 'single'); } catch (Horde_Ldap_Exception $e) { } try { return $information->getValue('loginshell', 'single'); } catch (Horde_Ldap_Exception $e) { return ''; } } /** * Returns the date of the user's last password change. * * @return string Date string. * * @throws Horde_Exception if user not found. * @throws Horde_Ldap_Exception on LDAP errors. */ public function getPasswordChange() { $information = $this->_getAccount(); try { return strftime('%x', $information->getValue('shadowlastchange', 'single') * 86400); } catch (Horde_Ldap_Exception $e) { } try { return strftime('%x', $this->_convertWinTimeToUnix($information->getValue('pwdlastset', 'single'))); } catch (Horde_Ldap_Exception $e) { return ''; } } /** * Returns the status of the current password. * * @return string A string with a warning message if the password is about * to expire. * * @throws Horde_Exception if user not found. * @throws Horde_Ldap_Exception on LDAP errors. */ public function checkPasswordStatus() { $information = $this->_getAccount(); // Active Directory. try { $accountControl = $information->getValue('useraccountcontrol', 'single'); $pwdlastset = $information->getValue('pwdlastset', 'single'); $accountControl = $information[0]['useraccountcontrol'][0]; if (($accountControl & 65536) != 0) { // ADS_UF_DONT_EXPIRE_PASSWD return ''; } if (($accountControl & 524288) != 0) { // ADS_UF_PASSWORD_EXPIRED return _("Your password has expired"); } $maxdays = $this->_getMaxPasswd(); if ($maxdays === false) { return ''; } $today = time(); $lastset = $pwdlastset - $maxdays; $toexpire = floor(($this->_convertWinTimeToUnix($lastset) - $today) / 86400); if ($toexpire < 0) { return _("Your password has expired"); } if ($toexpire < 14) { // Two weeks. return sprintf(_("%d days until your password expires."), $toexpire); } } catch (Horde_Ldap_Exception $e) { } // OpenLDAP. try { $shadowmax = $information->getValue('shadowmax', 'single'); $shadowlastchange = $information->getValue('shadowlastchange', 'single'); $shadowwarning = $information->getValue('shadowwarning', 'single'); $today = floor(time() / 86400); $warnday = $shadowlastchange + $shadowmax - $shadowwarning; $toexpire = $shadowlastchange + $shadowmax - $today; if ($today >= $warnday) { return sprintf(_("%d days until your password expires."), $toexpire); } } catch (Horde_Ldap_Exception $e) { } return ''; } } tmpjWNuGb/horde-5.1.5/lib/Block/Cloud.php0000644000175000017500000000277012233761316017743 0ustar mathieumathieu * @package Horde */ class Horde_Block_Cloud extends Horde_Core_Block { /** */ public function __construct($app, $params = array()) { parent::__construct($app, $params); $this->_name = _("Tag Cloud"); } /** */ protected function _content() { $cloud = new Horde_Core_Ui_TagCloud(); foreach ($this->_getTags() as $tag) { $cloud->addElement( $tag['tag_name'], '#', $tag['count'], null, 'doSearch(\'' . $tag['tag_name'] . '\'); return false;'); } Horde::startBuffer(); include HORDE_TEMPLATES . '/block/cloud.inc'; return Horde::endBuffer() . '
     ' . Horde::img('loading.gif', '', array('style' => 'display:none;', 'id' => 'cloudloadingimg')) . '
    ' . $cloud->buildHTML() . '
    '; } /** */ private function _getTags() { $results = array(); foreach ($GLOBALS['registry']->listAPIs() as $api) { if ($GLOBALS['registry']->hasMethod($api . '/listTagInfo')) { try { $results = array_merge( $results, $GLOBALS['registry']->call($api . '/listTagInfo', array(null, $GLOBALS['registry']->getAuth()))); } catch (Horde_Exception $e) {} } } return $results; } } tmpjWNuGb/horde-5.1.5/lib/Block/Iframe.php0000644000175000017500000000417712233761316020103 0ustar mathieumathieu_name = _("View an external web page"); } /** */ protected function _params() { return array( 'iframe' => array( 'type' => 'text', 'name' => _("URL"), 'default' => '' ), 'title' => array( 'type' => 'text', 'name' => _("Title") ), 'height' => array( 'type' => 'enum', 'name' => _("Height"), 'default' => '600', 'values' => array( '480' => _("Small"), '600' => _("Medium"), '768' => _("Large"), '1024' => _("Extra Large") ) ) ); } /** */ protected function _title() { $title = !empty($this->_params['title']) ? $this->_params['title'] : $this->_params['iframe']; $url = new Horde_Url(Horde::externalUrl($this->_params['iframe'])); return htmlspecialchars($title) . $url->link(array('target' => '_blank')) . Horde::img('external.png', '', array('style' => 'vertical-align:middle;padding-left:.3em')) . ''; } /** */ protected function _content() { global $browser; if (!$browser->hasFeature('iframes')) { return _("Your browser does not support this feature."); } if (empty($this->_params['height'])) { $height = ($browser->isBrowser('msie') || $browser->isBrowser('webkit')) ? '' : ' height="100%"'; } else { $height = ' height="' . htmlspecialchars($this->_params['height']) . '"'; } return ''; } } tmpjWNuGb/horde-5.1.5/lib/Block/Sunrise.php0000644000175000017500000001172612233761316020326 0ustar mathieumathieu_name = _("Sunrise/Sunset"); } /** */ protected function _params() { $params = array( 'location' => array( 'type' => 'mlenum', 'name' => _("Location"), 'default' => '51.517:-0.117' ) ); global $coordinates; if (!is_array($coordinates)) { include 'Horde/Nls/Coordinates.php'; if (!is_array($coordinates)) { $coordinates = array(); } } $params['location']['values'] = $coordinates; return $params; } /** */ protected function _content() { if (empty($this->_params['location'])) { throw new Horde_Exception(_("No location is set.")); } // Set the timezone variable, if available. $GLOBALS['registry']->setTimeZone(); list($lat, $long) = explode(':', $this->_params['location']); $rise = $this->_calculateSunset(time(), $lat, $long, false, floor(date('Z') / 3600)); $set = $this->_calculateSunset(time(), $lat, $long, true, floor(date('Z') / 3600)); $location = ''; global $coordinates; if (!is_array($coordinates)) { require 'Horde/Nls/Coordinates.php'; } foreach ($coordinates as $country) { if (array_key_exists($this->_params['location'], $country)) { $location = $country[$this->_params['location']]; break; } } return '' . '' . '' . '' . '
    ' . $location . '
    ' . Horde::img('block/sunrise/sunrise.png', _("Sun Rise")) . '
    ' . $rise . '
    ' . Horde::img('block/sunrise/sunset.png', _("Sun Set")) . '
    ' . $set . '
    '; } /** * http://www.zend.com/codex.php?id=135&single=1 */ private function _calculateSunset($date, $latitude, $longitude, $sunset = true, $timezone) { $yday = date('z', $date); $mon = date('n', $date); $mday = date('j', $date); $year = date('Y', $date); if ($timezone == '13') { $timezone = '-11'; $mday++; $yday++; } $A = 1.5708; $B = 3.14159; $C = 4.71239; $D = 6.28319; $E = 0.0174533 * $latitude; $F = 0.0174533 * $longitude; $G = 0.261799 * $timezone; // For astronomical twilight, use R = -.309017 // For nautical twilight, use R = -.207912 // For civil twilight, use R = -.104528 // For sunrise or sunset, use R = -.0145439 $R = -.0145439; if ($sunset) { $J = $C; } else { $J = $A; } $K = $yday + (($J - $F) / $D); $L = ($K * .017202) - .0574039; // Solar Mean Anomoly $M = $L + .0334405 * sin($L); // Solar True Longitude $M += 4.93289 + (3.49066E-04) * sin(2 * $L); // Quadrant Determination while ($M < 0) { $M = ($M + $D); } while ($M >= $D) { $M = ($M - $D); } if (($M / $A) - intval($M / $A) == 0) { $M += 4.84814E-06; } $P = sin($M) / cos($M); // Solar Right Ascension $P = atan2(.91746 * $P, 1); // Quadrant Adjustment if ($M > $C) { $P += $D; } elseif ($M > $A) { $P += $B; } $Q = .39782 * sin($M); // Solar Declination $Q = $Q / sqrt(-$Q * $Q + 1); // This is how the original author wrote it! $Q = atan2($Q, 1); $S = $R - (sin($Q) * sin($E)); $S = $S / (cos($Q) * cos($E)); if (abs($S) > 1) { return 'none'; // Null phenomenon } $S = $S / sqrt(-$S * $S + 1); $S = $A - atan2($S, 1); if (!$sunset) { $S = $D - $S ; } $T = $S + $P - 0.0172028 * $K - 1.73364; // Local apparent time $U = $T - $F; // Universal timer $V = $U + $G; // Wall clock time // Quadrant Determination while ($V < 0) { $V = ($V + $D); } while ($V >= $D) { $V = ($V - $D); } $V = $V * 3.81972; $hour = intval($V); $V -= $hour; $min = intval($V * 60); $V -= $min / 60; $sec = intval($V * 3600); return strftime('%X', mktime($hour, $min, $sec, $mon, $mday, $year)); } } tmpjWNuGb/horde-5.1.5/lib/Block/Feed.php0000644000175000017500000000602512233761316017535 0ustar mathieumathieuenabled = class_exists('Horde_Feed'); $this->_name = _("Syndicated Feed"); } /** */ protected function _params() { return array( 'uri' => array( 'type' => 'text', 'name' => _("Feed Address") ), 'limit' => array( 'name' => _("Number of articles to display"), 'type' => 'int', 'default' => 10 ), 'interval' => array( 'name' => _("How many seconds before we check for new articles?"), 'type' => 'int', 'default' => 86400 ), 'details' => array( 'name' => _("Show extra detail?"), 'type' => 'boolean', 'default' => 20 ) ); } /** */ protected function _title() { $this->_read(); return ($this->_feed instanceof Horde_Feed_Base) ? $this->_feed->title() : _("Feed"); } /** */ protected function _content() { $this->_read(); if ($this->_feed instanceof Horde_Feed_Base) { $html = ''; $count = 0; foreach ($this->_feed as $entry) { if (++$count > $this->_params['limit']) { break; } $html .= '_params['details'])) { $html .= ' title="' . htmlspecialchars(strip_tags($entry->description())) . '"'; } $html .= '>' . htmlspecialchars($entry->title) . ''; if (!empty($this->_params['details'])) { $html .= '
    ' . htmlspecialchars(strip_tags($entry->description())). "
    \n"; } $html .= '
    '; } return $html; } return is_string($this->_feed) ? $this->_feed : ''; } /** */ private function _read() { if (empty($this->_params['uri'])) { return; } $key = md5($this->_params['uri']); $cache = $GLOBALS['injector']->getInstance('Horde_Cache'); $feed = $cache->get($key, $this->_params['interval']); if (!empty($feed)) { $this->_feed = unserialize($feed); } try { $client = $GLOBALS['injector'] ->getInstance('Horde_Core_Factory_HttpClient') ->create(); $feed = Horde_Feed::readUri($this->_params['uri'], $client); $cache->set($key, serialize($feed)); $this->_feed = $feed; } catch (Exception $e) { $this->_feed = $e->getMessage(); } } } tmpjWNuGb/horde-5.1.5/lib/Block/Google.php0000644000175000017500000000301712233761316020104 0ustar mathieumathieuenabled = isset($GLOBALS['conf']['api']['googlesearch']); $this->_name = _("Google Search"); } /** */ protected function _content() { Horde::startBuffer(); ?>
    ...
    _name = _("Moon Phases"); } /** */ protected function _params() { return array( 'phase' => array( 'name' => _("Which phases"), 'type' => 'enum', 'default' => 'current', 'values' => array('current' => _("Current 4 Phases"), 'next' => _("Next 4 Phases"))), 'hemisphere' => array( 'name' => _("Hemisphere"), 'type' => 'enum', 'default' => 'northern', 'values' => array('northern' => _("Northern Hemisphere"), 'southern' => _("Southern Hemisphere"))), ); } /** */ protected function _content() { $phases = $this->_calculateMoonPhases(date('Y')); $now = time(); $lastNew = 0; $lastNewStamp = 0; $offset = 0; foreach ($phases as $key => $val) { if ($key < $now && $key > $lastNewStamp && $val == _("New Moon")) { $lastNew = $offset; $lastNewStamp = $key; } $offset++; } if (isset($this->_params['phase']) && $this->_params['phase'] == 'next') { $dates = array_slice(array_keys($phases), $lastNew + 4, 4); } else { $dates = array_slice(array_keys($phases), $lastNew, 4); } if (isset($this->_params['hemisphere']) && $this->_params['hemisphere'] == 'northern') { $location = _("Northern Hemisphere"); } else { $location = _("Southern Hemisphere"); } $html = '' . '' . ''; $html .= ''; $html .= ''; $html .= '
    ' . $location . '
    ' . Horde::img('block/moon/newmoon.png', _("New Moon")) . '
    ' . strftime('%d %b', $dates[0]) . '
    '; if (isset($this->_params['hemisphere']) && $this->_params['hemisphere'] == 'northern') { $html .= Horde::img('block/moon/lastquarter.png', _("First Quarter")); } else { $html .= Horde::img('block/moon/firstquarter.png', _("First Quarter")); } $html .= '
    ' . strftime('%d %b', $dates[1]) . '
    ' . Horde::img('block/moon/fullmoon.png', _("Full Moon")) . '
    ' . strftime('%d %b', $dates[2]) . '
    '; if (isset($this->_params['hemisphere']) && $this->_params['hemisphere'] == 'northern') { $html .= Horde::img('block/moon/firstquarter.png', _("Last Quarter")); } else { $html .= Horde::img('block/moon/lastquarter.png', _("Last Quarter")); } $html .= '
    ' . strftime('%d %b', $dates[3]) . '
    '; return $html; } /** * Returns an array with all the phases of the moon for a whole * year. * * Based on code from * http://www.zend.com/codex.php?id=830&single=1 by Are Pedersen. * * Converted from Basic by Roger W. Sinnot, Sky & Telescope, March 1985. * Converted from javascript by Are Pedersen 2002 * Javascript found at http://www.stellafane.com/moon_phase/moon_phase.htm * * @param integer $year The four digit year to return the moon phases * for. * * @return array The moon phases. */ private function _calculateMoonPhases($Y) { $R1 = 3.14159265 / 180; $U = false; $K0 = intval(($Y - 1900) * 12.3685); $T = ($Y - 1899.5) / 100; $T2 = $T * $T; $T3 = $T * $T * $T; $J0 = 2415020 + 29 * $K0; $F0 = 0.0001178 * $T2 - 0.000000155 * $T3; $F0 += (0.75933 + 0.53058868*$K0); $F0 -= (0.000837 * $T + 0.000335 * $T2); $M0 = $K0 * 0.08084821133; $M0 = 360 * ($M0 - intval($M0)) + 359.2242; $M0 -= 0.0000333 * $T2; $M0 -= 0.00000347 * $T3; $M1 = $K0 * 0.07171366128; $M1 = 360 * ($M1 - intval($M1)) + 306.0253; $M1 += 0.0107306 * $T2; $M1 += 0.00001236 * $T3; $B1 = $K0 * 0.08519585128; $B1 = 360 * ($B1 - intval($B1)) + 21.2964; $B1 -= 0.0016528 * $T2; $B1 -= 0.00000239 * $T3; for ($K9 = 0; $K9 <= 28; $K9 = $K9 + 0.5) { $J = $J0 + 14 * $K9; $F = $F0 + 0.765294 * $K9; $K = $K9 / 2; $M5 = ($M0 + $K * 29.10535608) * $R1; $M6 = ($M1 + $K * 385.81691806) * $R1; $B6 = ($B1 + $K * 390.67050646) * $R1; $F -= 0.4068 * sin($M6); $F += (0.1734 - 0.000393 * $T) * sin($M5); $F += 0.0161 * sin(2 * $M6); $F += 0.0104 * sin(2 * $B6); $F -= 0.0074 * sin($M5 - $M6); $F -= 0.0051 * sin($M5 + $M6); $F += 0.0021 * sin(2 * $M5); $F += 0.0010 * sin(2 * $B6 - $M6); /* Add 1/2 minute for proper rounding to minutes per Sky & * Tel article. */ $F += 0.5 / 1440; $J += intval($F); $F -= intval($F); /* Convert from JD to Calendar Date. */ $julian = $J + round($F); $parts = explode('/', $this->_jdtogregorian($julian)); $stamp = gmmktime(0, 0, 0, $parts[0], $parts[1], $parts[2]); /* half K. */ if (($K9 - floor($K9)) > 0) { if ($U) { /* New half. */ $phases[$stamp] = _("First Half"); } else { /* Full half. */ $phases[$stamp] = _("Last Half"); } } else { /* full K. */ if (!$U) { $phases[$stamp] = _("New Moon"); } else { $phases[$stamp] = _("Full Moon"); } $U = !$U; } } return $phases; } /** * Checks if the jdtogregorian function exists, and if not calculates the * gregorian date manually. * * @param int $julian The julian date. * * @return string m/d/Y */ private function _jdtogregorian($julian) { if (function_exists('jdtogregorian')) { return jdtogregorian($julian); } // From http://php.net/manual/en/function.jdtogregorian.php $julian = $julian - 1721119; $calc1 = 4 * $julian - 1; $year = floor($calc1 / 146097); $julian = floor($calc1 - 146097 * $year); $day = floor($julian / 4); $calc2 = 4 * $day + 3; $julian = floor($calc2 / 1461); $day = $calc2 - 1461 * $julian; $day = floor(($day + 4) / 4); $calc3 = 5 * $day - 3; $month = floor($calc3 / 153); $day = $calc3 - 153 * $month; $day = floor(($day + 5) / 5); $year = 100 * $year + $julian; if ($month < 10) { $month = $month + 3; } else { $month = $month - 9; $year = $year + 1; } return "$month/$day/$year"; } } tmpjWNuGb/horde-5.1.5/lib/Block/Fortune.php0000644000175000017500000000753712233761316020325 0ustar mathieumathieuenabled = (isset($GLOBALS['conf']['fortune']['exec_path']) && is_executable($GLOBALS['conf']['fortune']['exec_path'])); $this->_name = _("Random Fortune"); } /** */ protected function _title() { return _("Fortune"); } /** */ protected function _params() { global $conf; $descriptions = array( 'art' => _("Art"), 'ascii-art' => _("Ascii Art"), 'bofh-excuses' => _("BOFH Excuses"), 'computers' => _("Computers"), 'cookie' => _("Cookie"), 'definitions' => _("Definitions"), 'drugs' => _("Drugs"), 'education' => _("Education"), 'ethnic' => _("Ethnic"), 'food' => _("Food"), 'fortunes' => _("Fortunes"), 'fortunes2' => _("Fortunes 2"), 'goedel' => _("Goedel"), 'humorists' => _("Humorists"), 'kernelnewbies' => _("Kernel Newbies"), 'kids' => _("Kids"), 'law' => _("Law"), 'limerick' => _("Limerick"), 'linuxcookie' => _("Linux Cookie"), 'literature' => _("Literature"), 'love' => _("Love"), 'magic' => _("Magic"), 'medicine' => _("Medicine"), 'miscellaneous' => _("Miscellaneous"), 'news' => _("News"), 'osfortune' => _("Operating System"), 'people' => _("People"), 'pets' => _("Pets"), 'platitudes' => _("Platitudes"), 'politics' => _("Politics"), 'riddles' => _("Riddles"), 'science' => _("Science"), 'songs-poems' => _("Songs & Poems"), 'sports' => _("Sports"), 'startrek' => _("Star Trek"), 'translate-me' => _("Translations"), 'wisdom' => _("Wisdom"), 'work' => _("Work"), 'zippy' => _("Zippy") ); $values = array(); exec($conf['fortune']['exec_path'] . ' -f 2>&1', $output, $status); if (!$status) { for ($i = 1, $ocnt = count($output); $i < $ocnt; ++$i) { $fortune = substr($output[$i], strrpos($output[$i], ' ') + 1); $values[$fortune] = isset($descriptions[$fortune]) ? $descriptions[$fortune] : $fortune; } } if (empty($values)) { $values = $descriptions; } asort($values); $values = array_merge(array('' => _("All")), $values); return array( 'offend' => array( 'type' => 'enum', 'name' => _("Offense filter"), 'default' => '', 'values' => array( '' => _("No offensive fortunes"), ' -o' => _("Only offensive fortunes"), ' -a' => _("Both") ) ), 'fortune' => array( 'type' => 'multienum', 'name' => _("Fortune type"), 'default' => array(''), 'values' => $values ) ); } /** */ protected function _content() { global $conf; $cmdLine = $conf['fortune']['exec_path'] . $this->_params['offend'] . ' ' . implode(' ', $this->_params['fortune']); return '' . nl2br($GLOBALS['injector']->getInstance('Horde_Core_Factory_TextFilter')->filter(shell_exec($cmdLine), array('space2html'), array(array('encode' => true)))) . ''; } } tmpjWNuGb/horde-5.1.5/lib/Block/Time.php0000644000175000017500000000243212233761316017566 0ustar mathieumathieu_name = _("Current Time"); } /** */ protected function _params() { return array( 'time' => array( 'type' => 'enum', 'name' => _("Time format"), 'default' => '24-hour', 'values' => array( '24-hour' => _("24 Hour Format"), '12-hour' => _("12 Hour Format") ) ) ); } /** */ protected function _content() { if (empty($this->_params['time'])) { $this->_params['time'] = '24-hour'; } // Set the timezone variable, if available. $GLOBALS['registry']->setTimeZone(); $html = '
    ' . strftime('%A, %B %d, %Y '); if ($this->_params['time'] == '24-hour') { $html .= strftime('%H:%M'); } else { $html .= strftime('%I:%M %p'); } return $html . '
    '; } } tmpjWNuGb/horde-5.1.5/lib/Block/FbStream.php0000644000175000017500000001350012233761316020371 0ustar mathieumathieu * @package Horde */ class Horde_Block_FbStream extends Horde_Core_Block { /** * @var Horde_Service_Facebook */ protected $_facebook; /** * Cache the uid/sid * * @var string */ protected $_fbp = array(); /** */ public function __construct($app, $params = array()) { try { $this->_facebook = $GLOBALS['injector'] ->getInstance('Horde_Service_Facebook'); } catch (Horde_Exception $e) { $this->enabled = false; return; } parent::__construct($app, $params); $this->_name = _("My Facebook Stream"); $this->_fbp = unserialize($GLOBALS['prefs']->getValue('facebook')); } /** */ protected function _params() { $filters = array(); if (!empty($this->_fbp['sid'])) { try { $stream_filters = $this->_facebook->streams->getFilters($this->_fbp['uid']); foreach ($stream_filters as $filter) { $filters[$filter['filter_key']] = $filter['name']; } } catch (Horde_Service_Facebook_Exception $e) { } } return array( 'filter' => array( 'type' => 'enum', 'name' => _("Filter"), 'default' => 'nf', 'values' => $filters ), 'count' => array( 'type' => 'int', 'name' => _("Maximum number of entries to display"), 'default' => '20' ), 'notifications' => array( 'type' => 'boolean', 'name' => _("Show notifications"), 'default' => true ), 'height' => array( 'name' => _("Height of stream content (width automatically adjusts to block)"), 'type' => 'int', 'default' => 250 ), ); } /** */ protected function _title() { return Horde::externalUrl('http://facebook.com', true) . $this->getName() . ''; } /** * The content to go in this block. * * @return string The content. */ protected function _content() { global $page_output; $instance = hash('md5', mt_rand()); $endpoint = Horde::url('services/facebook/', true); $html = ''; // Init facebook driver, exit early if no prefs exist $facebook = $this->_facebook; if (!($facebook->auth->getSessionKey())) { return sprintf( _("You are not connected to your Facebook account. You should check your Facebook settings in your %s."), $GLOBALS['registry']->getServiceLink('prefs', 'horde')->add('group', 'facebook')->link() . _("preferences") . '' ); } // Add the client javascript / initialize it $page_output->addThemeStylesheet('facebook.css'); $page_output->addScriptFile('facebookclient.js'); $script = <<_params['filter']}', 'count': '{$this->_params['count']}' }); EOT; $page_output->addInlineScript($script, true); // Start building the block UI. $html .= '
    '; if (!empty($this->_params['notifications'])) { $html .= '
    '; } try { $fbperms = $facebook->users->getAppPermissions(); if (!empty($fbperms[Horde_Service_Facebook_Auth::EXTEND_PERMS_PUBLISHSTREAM])) { $html .= '' . '' . Horde::img('loading.gif', '', array('id' => $instance. '_loading', 'style' => 'display:none;')); } } catch (Horde_Service_Facebook_Exception $e) { $prefs = $GLOBALS['registry']->getServiceLink('prefs'); $html .= sprintf(_("There was an error making the request: %s"), $e->getMessage()); $html .= sprintf(_("You can also check your Facebook settings in your %s."), $prefs->add('group', 'facebook')->link() . _("preferences") . ''); return $html; } $html .= '
    '; // Close the node that wraps the status // Build the stream feed. $html .= '

    '; $html .= '
    '; $html .= ''; return $html; } } tmpjWNuGb/horde-5.1.5/lib/Block/Metar.php0000644000175000017500000004460112233761316017744 0ustar mathieumathieuenabled = (!empty($GLOBALS['conf']['sql']['phptype']) && class_exists('Services_Weather') && class_exists('DB')); $this->_name = _("Metar Weather"); } /** */ protected function _title() { return _("Current Weather"); } /** */ protected function _params() { $db = $GLOBALS['injector']->getInstance('Horde_Core_Factory_DbPear')->create(); $result = $db->query('SELECT icao, name, country FROM metarAirports ORDER BY country'); if ($result instanceof PEAR_Error) { throw new Horde_Exception($result); } $locations = array(); while ($row = $result->fetchRow(DB_FETCHMODE_ASSOC)) { $locations[$row['country']][$row['icao']] = $row['name']; } return array( 'location' => array( 'type' => 'mlenum', 'name' => _("Location"), 'default' => 'KSFB', 'values' => $locations, ), 'units' => array( 'type' => 'enum', 'name' => _("Units"), 'default' => 's', 'values' => array( 's' => _("Standard"), 'm' => _("Metric") ) ), 'knots' => array( 'type' => 'checkbox', 'name' => _("Wind speed in knots"), 'default' => 0 ), 'taf' => array( 'type' => 'checkbox', 'name' => _("Display forecast (TAF)"), 'default' => 0 ) ); } /** */ private function _row($label, $content) { return '
    ' . $label . ': ' . $content; } /** */ private function _sameRow($label, $content) { return ' ' . $label . ': ' . $content; } /** */ protected function _content() { global $conf; static $metarLocs; if (empty($this->_params['location'])) { throw new Horde_Exception(_("No location is set.")); } if (!is_array($metarLocs)) { $metarLocs = $this->getParams(); } $metar = Services_Weather::service('METAR', array('debug' => 0)); $metar->setMetarDB($conf['sql']); $metar->setUnitsFormat($this->_params['units']); $metar->setDateTimeFormat('M j, Y', 'H:i'); $metar->setMetarSource('http'); $units = $metar->getUnitsFormat($this->_params['units']); $weather = $metar->getWeather($this->_params['location']); if (is_a($weather, 'PEAR_Error')) { $html = $weather->getMessage(); return $html; } $html = '' . '
    ' . sprintf('%s, %s (%s)', $metarLocs['location']['values'][$this->_params['__location']][$this->_params['location']], $this->_params['__location'], $this->_params['location']) . '
    ' . _("Last Updated:") . ' ' . $weather['update'] . '

    '; // Wind. if (isset($weather['wind'])) { $html .= '' . _("Wind:") . ' '; if ($weather['windDirection'] == 'Variable') { if (!empty($this->_params['knots'])) { $html .= sprintf(_("%s at %s %s"), $weather['windDirection'], round($metar->convertSpeed($weather['wind'], $units['wind'], 'kt')), 'kt'); } else { $html .= sprintf(_("%s at %s %s"), $weather['windDirection'], round($weather['wind']), $units['wind']); } } elseif (($weather['windDegrees'] == '000') && ($weather['wind'] == '0')) { $html .= sprintf(_("calm")); } else { $html .= sprintf(_("from the %s (%s) at %s %s"), $weather['windDirection'], $weather['windDegrees'], empty($this->_params['knots']) ? round($weather['wind']) : round($metar->convertSpeed($weather['wind'], $units['wind'], 'kt')), empty($this->_params['knots']) ? $units['wind'] : 'kt'); } } if (isset($weather['windGust'])) { if ($weather['windGust']) { if (!empty($this->_params['knots'])) { $html .= sprintf(_(", gusting %s %s"), round($metar->convertSpeed($weather['windGust'], $units['wind'], 'kt')), 'kt'); } else { $html .= sprintf(_(", gusting %s %s"), round($weather['windGust']), $units['wind']); } } } if (isset($weather['windVariability'])) { if ($weather['windVariability']['from']) { $html .= sprintf(_(", variable from %s to %s"), $weather['windVariability']['from'], $weather['windVariability']['to']); } } // Visibility. if (isset($weather['visibility'])) { $html .= $this->_sameRow(_("Visibility"), $weather['visibility'] . ' ' . $units['vis']); } // Temperature/DewPoint. if (isset($weather['temperature'])) { $html .= $this->_row(_("Temperature"), round($weather['temperature']) . '°' . Horde_String::upper($units['temp'])); } if (isset($weather['dewPoint'])) { $html .= $this->_sameRow(_("Dew Point"), round($weather['dewPoint']) . '°' . Horde_String::upper($units['temp'])); } if (isset($weather['feltTemperature'])) { $html .= $this->_sameRow(_("Feels Like"), round($weather['feltTemperature']) . '°' . Horde_String::upper($units['temp'])); } // Pressure. if (isset($weather['pressure'])) { $html .= $this->_row(_("Pressure"), $weather['pressure'] . ' ' . $units['pres']); } // Humidity. if (isset($weather['humidity'])) { $html .= $this->_sameRow(_("Humidity"), round($weather['humidity']) . '%'); } // Clouds. if (isset($weather['clouds'])) { $clouds = ''; foreach ($weather['clouds'] as $cloud) { $clouds .= '
    '; if (isset($cloud['height'])) { $clouds .= sprintf(_("%s at %s %s"), $cloud['amount'], $cloud['height'], $units['height']); } else { $clouds .= $cloud['amount']; } } $html .= $this->_row(_("Clouds"), $clouds); } // Conditions. if (isset($weather['condition'])) { $html .= $this->_row(_("Conditions"), $weather['condition']); } // Remarks. if (isset($weather['remark'])) { $remarks = ''; $other = ''; foreach ($weather['remark'] as $remark => $value) { switch ($remark) { case 'seapressure': $remarks .= '
    ' . _("Pressure at sea level: ") . $value . ' ' . $units['pres']; break; case 'precipitation': foreach ($value as $precip) { if (is_numeric($precip['amount'])) { $remarks .= '
    ' . sprintf(ngettext("Precipitation for last %d hour: ", "Precipitation for last %d hours: ", $precip['hours']), $precip['hours']) . $precip['amount'] . ' ' . $units['rain']; } else { $remarks .= '
    ' . sprintf(ngettext("Precipitation for last %d hour: ", "Precipitation for last %d hours: ", $precip['hours']), $precip['hours']) . $precip['amount']; } } break; case 'snowdepth': $remarks .= '
    ' . _("Snow depth: ") . $value . ' ' . $units['rain']; break; case 'snowequiv': $remarks .= '
    ' . _("Snow equivalent in water: ") . $value . ' ' . $units['rain']; break; case 'sunduration': $remarks .= '
    ' . sprintf(_("%d minutes"), $value); break; case '1htemp': $remarks .= '
    ' . _("Temp for last hour: ") . round($value) . '°' . Horde_String::upper($units['temp']); break; case '1hdew': $remarks .= '
    ' . _("Dew Point for last hour: ") . round($value) . '°' . Horde_String::upper($units['temp']); break; case '6hmaxtemp': $remarks .= '
    ' . _("Max temp last 6 hours: ") . round($value) . '°' . Horde_String::upper($units['temp']); break; case '6hmintemp': $remarks .= '
    ' . _("Min temp last 6 hours: ") . round($value) . '°' . Horde_String::upper($units['temp']); break; case '24hmaxtemp': $remarks .= '
    ' . _("Max temp last 24 hours: ") . round($value) . '°' . Horde_String::upper($units['temp']); break; case '24hmintemp': $remarks .= '
    ' . _("Min temp last 24 hours: ") . round($value) . '°' . Horde_String::upper($units['temp']); break; case 'sensors': foreach ($value as $sensor) { $remarks .= '
    ' . _("Sensor: ") . $sensor; } break; default: $other .= '
    ' . $value; break; } } $html .= $this->_row(_("Remarks"), $remarks . $other); } // TAF if (!empty($this->_params['taf'])) { $taf = $metar->getForecast($this->_params['location']); if (!is_a($taf, 'PEAR_Error')) { $forecast = ''; $forecast .= '
    ' . _("Forecast (TAF)") . '
    '; $forecast .= 'Valid: ' . $taf['validFrom'] . ' - ' . $taf['validTo'] . '

    '; $item = 0; foreach ($taf['time'] as $time => $entry) { $item++; $forecast .= ''; $forecast .= ''; $forecast .= ''; if (isset($entry['fmc'])) { $item++; foreach ($entry['fmc'] as $fmcEntry) { $forecast .= ''; $forecast .= ''; $forecast .= ''; } } } $forecast .= '
    ' . $time . 'Wind: '; if (isset($entry['wind'])) { if ($entry['windDirection'] == 'Variable') { if (!empty($this->_params['knots'])) { $forecast .= sprintf(_("%s at %s %s"), strtolower($entry['windDirection']), round($metar->convertSpeed($entry['wind'], $units['wind'], 'kt')), 'kt'); } else { $forecast .= sprintf(_("%s at %s %s"), $entry['windDirection'], round($entry['wind']), $units['wind']); } } elseif (($entry['windDegrees'] == '000') && ($entry['wind'] == '0')) { $forecast .= sprintf(_("calm")); } else { $forecast .= sprintf(_("from the %s (%s) at %s %s"), $entry['windDirection'], $entry['windDegrees'], empty($this->_params['knots']) ? round($entry['wind']) : round($metar->convertSpeed($entry['wind'], $units['wind'], 'kt')), empty($this->_params['knots']) ? $units['wind'] : 'kt'); } $forecast .= '
    '; } if (isset($entry['temperatureLow']) || isset($entry['temperatureHigh'])) { $forecast .= 'Temperature'; if (isset($entry['temperatureLow'])) { $forecast .= ' Low:'; $forecast .= $entry['temperatureLow']; } if (isset($entry['temperatureHigh'])) { $forecast .= ' High:'; $forecast .= $entry['temperatureHigh']; } $forecast .= '
    '; } if (isset($entry['windshear'])) { $forecast .= 'Windshear:'; $forecast .= sprintf(_("from the %s (%s) at %s %s"), $entry['windshearDirection'], $entry['windshearDegrees'], $entry['windshearHeight'], $units['height']); $forecast .= '
    '; } if (isset($entry['visibility'])) { $forecast .= 'Visibility: '; $forecast .= strtolower($entry['visQualifier']) . ' ' . $entry['visibility'] . ' ' . $units['vis']; $forecast .= '
    '; } if (isset($entry['condition'])) { $forecast .= 'Conditions: '; $forecast .= $entry['condition']; $forecast .= '
    '; } $forecast .= 'Clouds: '; foreach ($entry['clouds'] as $clouds) { if (isset($clouds['type'])) { $forecast .= ' ' . $clouds['type']; } $forecast .= ' ' . $clouds['amount']; if (isset($clouds['height'])) { $forecast .= ' at ' . $clouds['height'] . ' ' . $units['height']; } else { $forecast .= ' '; } } $forecast .= '
    '; $forecast .= '* ' . $fmcEntry['from'] . '
    - ' . $fmcEntry['to'] . '
    '; $forecast .= 'Type: ' . $fmcEntry['type']; if (isset($fmcEntry['probability'])) { $forecast .= ' Prob: ' . $fmcEntry['probability'] . '%'; } if (isset($fmcEntry['condition'])) { $forecast .= ' Conditions: ' . $fmcEntry['condition']; } if (isset($fmcEntry['clouds'])) { $forecast .= ' Clouds:'; foreach ($fmcEntry['clouds'] as $fmcClouds) { if (isset($fmcClouds['type'])) { $forecast .= ' ' . $fmcClouds['type']; } if (isset($fmcClouds['height'])) { $forecast .= ' ' . $fmcClouds['amount']; $forecast .= ' ' . $fmcClouds['height']; $forecast .= ' ' . $units['height']; } else { $forecast .= ' ' . $fmcClouds['amount']; } } } if (isset($fmcEntry['visQualifier'])) { $forecast .= ' Visibility: '; $forecast .= strtolower($fmcEntry['visQualifier']) . ' '; $forecast .= $fmcEntry['visibility'] . ' ' . $units['vis']; } $forecast .= '
    '; $html .= $forecast; } } return $html; } } tmpjWNuGb/horde-5.1.5/lib/Block/TwitterTimeline.php0000644000175000017500000001502312233761316022021 0ustar mathieumathieu * @author Michael J Rubinsky * @package Horde */ class Horde_Block_TwitterTimeline extends Horde_Core_Block { /** * @var Horde_Service_Twitter */ private $_twitter; /** * Twitter profile information returned from verify_credentials * * @var Object */ private $_profile; /** */ public function __construct($app, $params = array()) { parent::__construct($app, $params); $this->enabled = !empty($GLOBALS['conf']['twitter']['enabled']); $this->_name = _("Twitter Timeline"); } /** */ protected function _title() { try { $twitter = $this->_getTwitterObject(); } catch (Horde_Exception $e) { return $this->getName(); } try { $this->_profile = Horde_Serialize::unserialize($twitter->account->verifyCredentials(), Horde_Serialize::JSON); if (!empty($this->_profile)) { $username = $this->_profile->screen_name; return sprintf(_("Twitter Timeline for %s"), $username); } } catch (Horde_Service_Twitter_Exception $e) {} return $this->getName(); } /** */ protected function _params() { return array( 'height' => array( 'name' => _("Height of stream content (width automatically adjusts to block)"), 'type' => 'int', 'default' => 350 ), 'refresh_rate' => array( 'name' => _("Number of seconds to wait to refresh"), 'type' => 'int', 'default' => 300 ) ); } /** */ protected function _content() { global $page_output; /* Get the twitter driver */ try { $twitter = $this->_getTwitterObject(); } catch (Horde_Exception $e) { throw new Horde_Exception(sprintf(_("There was an error contacting Twitter: %s"), $e->getMessage())); } /* Get a unique ID in case we have multiple Twitter blocks. */ $instance = (string)new Horde_Support_Randomid(); /* Latest status */ if (empty($this->_profile->status)) { // status might not be set if only updating the block via ajax try { $this->_profile = Horde_Serialize::unserialize($twitter->account->verifyCredentials(), Horde_Serialize::JSON); if (empty($this->_profile)) { return _("Temporarily unable to contact Twitter. Please try again later."); } } catch (Horde_Service_Twitter_Exception $e) { $msg = Horde_Serialize::unserialize($e->getMessage(), Horde_Serialize::JSON); if (is_object($msg)) { $msg = $msg->errors[0]->message; } return sprintf(_("There was an error contacting Twitter: %s"), $msg); } } /* Build values to pass to the javascript twitter client */ $defaultText = addslashes(_("What are you working on now?")); $endpoint = Horde::url('services/twitter/', true); $inReplyToNode = $instance . '_inReplyTo'; $inReplyToText = addslashes(_("In reply to:")); $justNowText = addslashes(_("Just now...")); $refresh = empty($this->_params['refresh_rate']) ? 300 : $this->_params['refresh_rate']; /* Add the client javascript / initialize it */ $page_output->addScriptFile('twitterclient.js', 'horde'); $page_output->addScriptFile('scriptaculous/effects.js', 'horde'); $favorite = _("Favorite"); $unfavorite = _("Unfavorite"); $script = <<addInlineScript($script, true); /* Build the UI */ $view = new Horde_View(array('templatePath' => HORDE_TEMPLATES . '/block')); $view->addHelper('Tag'); $view->instance = $instance; $view->defaultText = $defaultText; $view->loadingImg = Horde::img('loading.gif', '', array('id' => $instance . '_loading', 'style' => 'display:none;')); $view->latestStatus = !empty($this->_profile->status) ? htmlspecialchars($this->_profile->status->text) : ''; $view->latestDate = !empty($this->_profile->status) ? Horde_Date_Utils::relativeDateTime(strtotime($this->_profile->status->created_at), $GLOBALS['prefs']->getValue('date_format'), ($GLOBALS['prefs']->getValue('twentyFour') ? "%H:%M" : "%I:%M %P")) : ''; $view->bodyHeight = empty($this->_params['height']) ? 350 : $this->_params['height']; return $view->render('twitter-layout'); } /** */ private function _getTwitterObject() { $token = unserialize($GLOBALS['prefs']->getValue('twitter')); if (empty($token['key']) && empty($token['secret'])) { $pref_link = $GLOBALS['registry']->getServiceLink('prefs', 'horde')->add('group', 'twitter')->link(); throw new Horde_Exception(sprintf(_("You have not properly connected your Twitter account with Horde. You should check your Twitter settings in your %s."), $pref_link . _("preferences") . '')); } $this->_twitter = $GLOBALS['injector']->getInstance('Horde_Service_Twitter'); $auth_token = new Horde_Oauth_Token($token['key'], $token['secret']); $this->_twitter->auth->setToken($auth_token); return $this->_twitter; } } tmpjWNuGb/horde-5.1.5/lib/Block/Vatid.php0000644000175000017500000001044612233761316017743 0ustar mathieumathieuenabled = Horde_Util::loadExtension('soap'); $this->_name = _("EU VAT identification"); } /** */ protected function _title() { return _("VAT id number verification"); } /** */ protected function _content() { global $page_output; $name = strval(new Horde_Support_Randomid()); $page_output->addScriptFile('vatid.js', 'horde'); $page_output->addInlineScript(array( '$("' . $name . '").observe("submit", HordeBlockVatid.onSubmit.bindAsEventListener(HordeBlockVatid))' ), true); return '
    ' . Horde_Util::formInput() . Horde::label('vatid', _("VAT identification number:")) . '
    ' . '
    ' . Horde::img('loading.gif', _("Checking"), array('style' => 'display:none')) . '
    ' . '
    '; } /** */ protected function _ajaxUpdate(Horde_Variables $vars) { $html = ''; $vatid = str_replace(' ', '', $vars->vatid); if (empty($vatid) || !preg_match('/^([A-Z]{2})([0-9A-Za-z\+\*\.]{2,12})$/', $vatid, $matches)) { return '
    ' . $this->_error(_("Invalid VAT identification number format.")); } if (empty($matches)) { return; } try { $client = new SoapClient( 'http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl', array('exceptions' => true)); $result = $client->checkVat(array( 'countryCode' => $matches[1], 'vatNumber' => $matches[2] )); if ($result->valid) { $html .= '' . _("This VAT identification number is valid.") . '
    '; } else { $html .= $this->_error(_("This VAT identification number is invalid.")) . '
    '; } $html .= '' . _("Country") . ': ' . $result->countryCode . '
    ' . _("VAT number") . ': ' . $result->vatNumber . '
    ' . _("Date") . ': ' . strftime($GLOBALS['prefs']->getValue('date_format'), strtotime($result->requestDate)) . '
    '; if (!empty($result->name)) { $html .= '' . _("Name") . ': ' . $result->name . '
    '; } if (!empty($result->address)) { $html .= '' . _("Address") . ': ' . $result->address . '
    '; } } catch (SoapFault $e) { $error = $e->getMessage(); switch (true) { case strpos($error, 'INVALID_INPUT'): $error = _("The provided country code is invalid."); break; case strpos($error, 'SERVICE_UNAVAILABLE'): $error = _("The service is currently not available. Try again later."); break; case strpos($error, 'MS_UNAVAILABLE'): $error = _("The member state service is currently not available. Try again later or with a different member state."); break; case strpos($error, 'TIMEOUT'): $error = _("The member state service could not be reached in time. Try again later or with a different member state."); break; case strpos($error, 'SERVER_BUSY'): $error = _("The service is currently too busy. Try again later."); break; } $html .= $this->_error($error); } return $html; } /** */ private function _error($text) { return '' . $text . ''; } } tmpjWNuGb/horde-5.1.5/lib/LoginTasks/0000755000175000017500000000000012262230550017173 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/lib/LoginTasks/Task/0000755000175000017500000000000012262230550020075 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/lib/LoginTasks/Task/AdminCheck.php0000644000175000017500000000414112233761316022603 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ class Horde_LoginTasks_Task_AdminCheck extends Horde_LoginTasks_Task { /** * The interval at which to run the task. * * @var integer */ public $interval = Horde_LoginTasks::EVERY; /** * Display type. * * @var integer */ public $display = Horde_LoginTasks::DISPLAY_NONE; /** * Constructor. */ public function __construct() { $this->active = $GLOBALS['registry']->isAdmin(); } /** * Perform all functions for this task. */ public function execute() { /* Check if test script is active. */ if (empty($GLOBALS['conf']['testdisable'])) { $GLOBALS['notification']->push(_("The test script is currently enabled. For security reasons, disable test scripts when you are done testing (see horde/docs/INSTALL)."), 'horde.warning'); } if (!empty($GLOBALS['conf']['sql']['phptype'])) { /* Check for outdated DB schemas. */ $migration = new Horde_Core_Db_Migration(); foreach ($migration->apps as $app) { $migrator = $migration->getMigrator($app); if ($migrator->getTargetVersion() > $migrator->getCurrentVersion()) { $GLOBALS['notification']->push( Horde::link(Horde::url('admin/config/index.php', false, array('app' => 'horde'))) . _("At least one database schema is outdated.") . '', 'horde.warning', array('content.raw', 'sticky') ); break; } } } } } tmpjWNuGb/horde-5.1.5/lib/LoginTasks/Task/LastLogin.php0000644000175000017500000000537112233761316022517 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ class Horde_LoginTasks_Task_LastLogin extends Horde_LoginTasks_Task { /** * The interval at which to run the task. * * @var integer */ public $interval = Horde_LoginTasks::EVERY; /** * Display type. * * @var integer */ public $display = Horde_LoginTasks::DISPLAY_NONE; /** * Perform all functions for this task. */ public function execute() { global $injector, $notification, $prefs, $registry; /* Fetch the user's last login time. */ $old_login = @unserialize($prefs->getValue('last_login')); /* Set the timezone to the current default. */ $registry->setTimeZone(); /* Display it, if we have a notification object and the * show_last_login preference is active. */ if (isset($notification) && $prefs->getValue('show_last_login')) { $date_format = $prefs->getValue('date_format') . ' (' . $prefs->getValue('time_format') . ')'; if (empty($old_login['time'])) { $notification->push(_("Last login: Never"), 'horde.message'); } elseif (empty($old_login['host'])) { $notification->push(sprintf(_("Last login: %s"), strftime($date_format, $old_login['time'])), 'horde.message'); } else { $notification->push(sprintf(_("Last login: %s from %s"), strftime($date_format, $old_login['time']), $old_login['host']), 'horde.message'); } } /* Set the user's last_login information. */ $host = empty($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['REMOTE_ADDR'] : $_SERVER['HTTP_X_FORWARDED_FOR']; if ($dns = $injector->getInstance('Net_DNS2_Resolver')) { $ptrdname = $host; try { if ($response = $dns->query($host, 'PTR')) { foreach ($response->answer as $val) { if (isset($val->ptrdname)) { $ptrdname = $val->ptrdname; break; } } } } catch (Net_DNS2_Exception $e) {} } else { $ptrdname = @gethostbyaddr($host); } $prefs->setValue('last_login', serialize(array( 'host' => $ptrdname, 'time' => time() ))); } } tmpjWNuGb/horde-5.1.5/lib/LoginTasks/Task/TosAgreement.php0000644000175000017500000000415012233761316023212 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/gpl GPL * @package Horde */ class Horde_LoginTasks_Task_TosAgreement extends Horde_LoginTasks_Task { /** * The interval at which to run the task. * * @var integer */ public $interval = Horde_LoginTasks::FIRST_LOGIN; /** * The style of the page output. * * @var integer */ public $display = Horde_LoginTasks::DISPLAY_AGREE; /** * The priority of the task. * * @var integer */ public $priority = Horde_LoginTasks::PRIORITY_HIGH; /** * Constructor. */ public function __construct() { global $conf; $this->active = false; if (!empty($conf['tos']['file'])) { if (file_exists($conf['tos']['file'])) { $this->active = true; } else { Horde::logMessage('Terms of Service Agreement file was not found: ' . $conf['tos']['file'], 'ERR'); } } } /** * Determine if user agreed with the terms or not. If the user does not * agree, log him/her out immediately. * * @throws Horde_Exception_AuthenticationFailure */ public function execute() { if (Horde_Util::getFormData('not_agree')) { throw new Horde_Exception_AuthenticationFailure(_("You did not agree to the Terms of Service agreement, so you were not allowed to login."), Horde_Auth::REASON_MESSAGE); } } /** * Returns the TOS agreement for display on the login tasks page. * * @return string The terms of service agreement. */ public function describe() { return file_get_contents($GLOBALS['conf']['tos']['file']); } } tmpjWNuGb/horde-5.1.5/lib/LoginTasks/SystemTask/0000755000175000017500000000000012262230550021302 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/lib/LoginTasks/SystemTask/GarbageCollection.php0000644000175000017500000000470712233761316025376 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ class Horde_LoginTasks_SystemTask_GarbageCollection extends Horde_LoginTasks_SystemTask { /** * The interval at which to run the task. * * @var integer */ public $interval = Horde_LoginTasks::WEEKLY; /** * Perform all functions for this task. */ public function execute() { /* Clean out static cache files. Any user has a 10% chance of * triggering this weekly - no need to have every user trigger * this once weekly since these static files are shared among * all users. */ if (rand(0, 9) === 0) { foreach (array('cachecss', 'cachejs') as $val) { if (!empty($GLOBALS['conf'][$val]) && (strcasecmp($GLOBALS['conf'][$val . 'params']['driver'], 'filesystem') === 0)) { $this->_staticFilesGc($val); } } } } /** * Do cleanup of static files directory. */ protected function _staticFilesGc($type) { if (!($lifetime = $GLOBALS['conf'][$type . 'params']['lifetime'])) { continue; } /* Keep a file in the static directory that prevents us from doing * garbage collection more than once a day. */ $curr_time = time(); $static_dir = $GLOBALS['registry']->get('fileroot', 'horde') . '/static'; $static_stat = $static_dir . '/gc_' . $type; $next_run = null; if (file_exists($static_stat)) { $next_run = $static_stat; } if (is_null($next_run) || ($curr_time > $next_run)) { file_put_contents($static_stat, $curr_time + 86400); } if (is_null($next_run) || ($curr_time < $next_run)) { return; } $c_time = $curr_time - $lifetime; foreach (glob($static_dir . '/*.' . substr($type, 5)) as $file) { if ($c_time > filemtime($file)) { @unlink($file); } } Horde::logMessage('Cleaned out static files for ' . $type, 'DEBUG'); } } tmpjWNuGb/horde-5.1.5/lib/LoginTasks/SystemTask/Upgrade.php0000644000175000017500000000476612233761316023426 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ class Horde_LoginTasks_SystemTask_Upgrade extends Horde_Core_LoginTasks_SystemTask_Upgrade { /** */ protected $_versions = array( '4.0', '4.0.12', '5.0.1' ); /** */ protected function _upgrade($version) { switch ($version) { case '4.0': $this->_upgradePortal(); $this->_upgradePrefs(); break; case '4.0.12': $this->_replaceWeatherBlock(); break; case '5.0.1': $this->_upgradeSendingCharsetPref(); break; } } /** * Upgrade portal preferences. */ protected function _upgradePortal() { $bu = new Horde_Core_Block_Upgrade(); $bu->upgrade('portal_layout'); } /** * Upgrade to the new preferences storage format. */ protected function _upgradePrefs() { $upgrade_prefs = array( 'identities' ); $GLOBALS['injector']->getInstance('Horde_Core_Prefs_Storage_Upgrade')->upgradeSerialized($GLOBALS['prefs'], $upgrade_prefs); } protected function _replaceWeatherBlock() { $col = $GLOBALS['injector'] ->getInstance('Horde_Core_Factory_BlockCollection') ->create(array('horde')); $m = $col->getLayoutManager(); $layout = $col->getLayout(); foreach ($layout as $r => $cur_row) { foreach ($cur_row as $c => &$cur_col) { if (isset($cur_col['app']) && $cur_col['app'] == 'horde' && is_array($cur_col['params']) && Horde_String::lower($cur_col['params']['type2']) == 'horde_block_weatherdotcom') { $m->handle('removeBlock', $r, $c); } } } if ($m->updated()) { $GLOBALS['prefs']->setValue('portal_layout', $m->serialize()); } } /** * In H5, default to UTF-8 for sending_charset. */ protected function _upgradeSendingCharsetPref() { $GLOBALS['prefs']->remove('sending_charset'); } } tmpjWNuGb/horde-5.1.5/lib/Application.php0000644000175000017500000003105112233761316020100 0ustar mathieumathieu true ); /** */ public function logout() { // Destroy any session-only temp files (since Horde_Core 1.7.0). foreach ($GLOBALS['session']->get('horde', 'gc_tempfiles', Horde_Session::TYPE_ARRAY) as $file) { @unlink($file); } } /** */ public function perms() { $permissions = array( 'max_blocks' => array( 'title' => _("Maximum Number of Portal Blocks"), 'type' => 'int' ), 'administration' => array( 'title' => _("Administration"), ) ); if (!empty($GLOBALS['conf']['activesync']['enabled'])) { $this->_addActiveSyncPerms($permissions); } try { foreach ($GLOBALS['registry']->callByPackage('horde', 'admin_list') as $perm_key => $perm_details) { $permissions['administration:' . $perm_key] = array('title' => Horde::stripAccessKey($perm_details['name'])); } } catch (Horde_Exception $e) {/*what to do if this fails?*/} return $permissions; } /** */ public function hasPermission($permission, $allowed, $opts = array()) { if (is_array($allowed)) { switch ($permission) { case 'max_blocks': $allowed = max($allowed); break; } } return $allowed; } /** */ public function configSpecialValues($what) { switch ($what) { case 'apps': $apps = Horde_Array::valuesToKeys($GLOBALS['registry']->listApps(array('active'))); asort($apps); return $apps; case 'languages': $convert_numeric = function($num) { return Horde_String::convertCharset(pack('H*', $num[1]), 'ucs-2', 'UTF-8'); }; $convert_symbolic = function($symbol) { return Horde_String::convertCharset( html_entity_decode($symbol[1], ENT_COMPAT, 'iso-8859-1'), 'iso-8859-1', 'UTF-8'); }; return array_map( function($val) { return preg_replace_callback( array('/&#x([0-9a-f]{4});/i', '/(&[^;]+;)/'), array($convert_numeric, $convert_symbolic), $val ); }, $GLOBALS['registry']->nlsconfig->languages ); case 'blocks': return $GLOBALS['injector']->getInstance('Horde_Core_Factory_BlockCollection')->create()->getBlocksList(); case 'mapsources': return array( 'Google' => 'Google', 'Bing' => 'Bing', 'Yahoo' => 'Yahoo', 'Cloudmade' => 'CloudMade', // @TODO: API has evidently changed somewhat. Disable until // I can get an API key to fully test. 'Mytopo' => 'MyTopo', 'Osm' => 'OpenStreetMap', 'Ocm' => 'OpenCycleMap', 'Mapquest' => 'OpenMapquest' ); case 'geocoders': return array( 'None' => null, 'Google' => 'Google', 'Yahoo' => 'Yahoo' ); } } /** */ public function removeUserData($user) { $error = false; /* Remove user from all groups */ $groups = $GLOBALS['injector']->getInstance('Horde_Group'); try { $allGroups = $groups->listGroups($user); foreach (array_keys($allGroups) as $id) { $groups->removeUser($id, $user); } } catch (Horde_Group_Exception $e) { Horde::logMessage($e, 'NOTICE'); $error = true; } /* Remove the user from all application permissions */ $perms = $GLOBALS['injector']->getInstance('Horde_Perms'); try { $tree = $perms->getTree(); } catch (Horde_Perms_Exception $e) { Horde::logMessage($e, 'NOTICE'); $error = true; $tree = array(); } foreach (array_keys($tree) as $id) { try { $perm = $perms->getPermissionById($id); if ($perms->getPermissions($perm, $user)) { // The Horde_Perms::ALL is used if this is a matrix perm, // otherwise it's ignored in the method and the entry is // totally removed. $perm->removeUserPermission($user, Horde_Perms::ALL, true); } } catch (Horde_Perms_Exception $e) { Horde::logMessage($e, 'NOTICE'); $error = true; } } if ($error) { throw new Horde_Exception(sprintf(_("There was an error removing global data for %s. Details have been logged."), $user)); } } protected function _addActiveSyncPerms(&$permissions) { $prefix = 'activesync:provisioning:'; $permissions['activesync'] = array( 'title' => _("ActiveSync"), 'type' => 'boolean' ); $permissions['activesync:max_devices'] = array( 'title' => _("Maximum number of devices"), 'type' => 'int' ); $permissions['activesync:provisioning'] = array( 'title' => _("Provisioning"), 'type' => 'enum', 'params' => array(array( false => '', 'false' => _("Never"), 'true' => _("Force"), 'allow' => _("Allow"), )) ); $permissions[$prefix . Horde_ActiveSync_Policies::POLICY_PIN] = array( 'title' => _("Require PIN"), 'type' => 'boolean' ); $permissions[$prefix . Horde_ActiveSync_Policies::POLICY_MINLENGTH] = array( 'title' => _("Minimum PIN length"), 'type' => 'int' ); $permissions[$prefix . Horde_ActiveSync_Policies::POLICY_COMPLEXITY] = array( 'title' => _("Password Complexity"), 'type' => 'enum', 'params' => array(array( false => '', 0 => _("Allow only numeric"), 1 => _("Allow alphanumeric"), 2 => _("Allow any")) ) ); $permissions[$prefix . Horde_ActiveSync_Policies::POLICY_AEFVALUE] = array( 'title' => _("Seconds of inactivity before device should lock"), 'type' => 'int' ); $permissions[$prefix . Horde_ActiveSync_Policies::POLICY_MAXFAILEDATTEMPTS] = array( 'title' => _("Failed unlock attempts before device is wiped"), 'type' => 'int' ); $permissions[$prefix . Horde_ActiveSync_Policies::POLICY_CODEFREQ] = array( 'title' => _("Codeword frequency"), 'type' => 'int' ); // EAS 12.0 and above. if ($GLOBALS['conf']['activesync']['version'] >= Horde_ActiveSync::VERSION_TWELVE) { $permissions[$prefix . Horde_ActiveSync_Policies::POLICY_ATC] = array( 'title' => _("Attachment Download"), 'type' => 'boolean' ); $permissions[$prefix . Horde_ActiveSync_Policies::POLICY_MAXATCSIZE] = array( 'title' => _("Maximum attachment size"), 'type' => 'int' ); $permissions[$prefix . Horde_ActiveSync_Policies::POLICY_ENCRYPTION] = array( 'title' => _("SD card encryption"), 'type' => 'boolean' ); } if ($GLOBALS['conf']['activesync']['version'] > Horde_ActiveSync::VERSION_TWELVE) { $permissions[$prefix . Horde_ActiveSync_Policies::POLICY_ALLOW_SDCARD] = array( 'title' => _("SD card"), 'type' => 'boolean' ); $permissions[$prefix . Horde_ActiveSync_Policies::POLICY_ALLOW_CAMERA] = array( 'title' => _("Camera"), 'type' => 'boolean' ); $permissions[$prefix . Horde_ActiveSync_Policies::POLICY_ALLOW_SMS] = array( 'title' => _("SMS Text messages"), 'type' => 'boolean' ); $permissions[$prefix . Horde_ActiveSync_Policies::POLICY_ALLOW_WIFI] = array( 'title' => _("Wifi"), 'type' => 'boolean' ); $permissions[$prefix . Horde_ActiveSync_Policies::POLICY_ALLOW_BLUETOOTH] = array( 'title' => _("Bluetooth"), 'type' => 'boolean' ); $permissions[$prefix . Horde_ActiveSync_Policies::POLICY_ALLOW_POPIMAP] = array( 'title' => _("POP/IMAP Email accounts"), 'type' => 'boolean' ); $permissions[$prefix . Horde_ActiveSync_Policies::POLICY_ALLOW_BROWSER] = array( 'title' => _("Web browser"), 'type' => 'boolean' ); $permissions[$prefix . Horde_ActiveSync_Policies::POLICY_REQUIRE_SMIME_ENCRYPTED] = array( 'title' => _("Require S/MIME Encryption"), 'type' => 'boolean' ); $permissions[$prefix . Horde_ActiveSync_Policies::POLICY_REQUIRE_SMIME_SIGNED] = array( 'title' => _("Require S/MIME Signature"), 'type' => 'boolean' ); $permissions[$prefix . Horde_ActiveSync_Policies::POLICY_DEVICE_ENCRYPTION] = array( 'title' => _("Device encryption"), 'type' => 'boolean' ); $permissions[$prefix . Horde_ActiveSync_Policies::POLICY_ALLOW_HTML] = array( 'title' => _("HTML Email"), 'type' => 'boolean' ); $permissions[$prefix . Horde_ActiveSync_Policies::POLICY_MAX_EMAIL_AGE] = array( 'title' => _("Maximum Email age"), 'type' => 'enum', 'params' => array(array( false => '', 0 => _("Sync all"), 1 => _("1 Day"), 2 => _("3 Days"), 3 => _("1 Week"), 4 => _("2 Weeks"), 5 => _("1 Month")) ) ); $permissions[$prefix . Horde_ActiveSync_Policies::POLICY_ROAMING_NOPUSH] = array( 'title' => _("No push while roaming"), 'type' => 'boolean' ); } } /* NoSQL methods. */ /** */ public function nosqlDrivers() { global $injector; $out = array(); $ob = $injector->getInstance('Horde_Core_Factory_Cache')->storage; if ($ob instanceof Horde_Cache_Storage_Mongo) { $out[] = $ob; } $ob = $injector->getInstance('Horde_Lock'); if ($ob instanceof Horde_Lock_Mongo) { $out[] = $ob; } $ob = $injector->getInstance('Horde_Core_Factory_Prefs')->storage; if ($ob instanceof Horde_Prefs_Storage_Mongo) { $out[] = $ob; } $ob = $injector->getInstance('Horde_Core_Factory_SessionHandler')->storage; if ($ob instanceof Horde_SessionHandler_Storage_Mongo) { $out[] = $ob; } $ob = $injector->getInstance('Horde_Token'); if ($ob instanceof Horde_Token_Mongo) { $out[] = $ob; } $ob = $injector->getInstance('Horde_Core_Factory_Vfs')->create(); if ($ob instanceof Horde_Vfs_Mongo) { $out[] = $ob; } return $out; } } tmpjWNuGb/horde-5.1.5/lib/tests/0000755000175000017500000000000012262230550016257 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/lib/tests/webroot.phpt0000644000175000017500000000621212233761316020645 0ustar mathieumathieu--TEST-- Automatic webroot detection --FILE-- '/horde/webroot.php'); var_dump(_detect_webroot()); $_SERVER = array('SCRIPT_URL' => '/horde/webroot.php'); var_dump(_detect_webroot()); $_SERVER = array('PHP_SELF' => '/horde/webroot.php'); var_dump(_detect_webroot()); $FILE = '/var/www/horde3/config/registry.php'; $_SERVER = array('SCRIPT_NAME' => '/webroot.php', 'PHP_SELF' => '/webroot.php'); var_dump(_detect_webroot()); $FILE = '/var/www/horde/config/registry.php'; var_dump(_detect_webroot()); $FILE = '/Users/foo/Sites/hordehead/config/registry.php'; $_SERVER = array('SCRIPT_URL' => '/~foo/hordehead/webroot.php', 'SCRIPT_NAME' => '/~foo/hordehead/webroot.php', 'PHP_SELF' => '/~foo/hordehead/webroot.php'); var_dump(_detect_webroot()); $FILE = '/var/www/html/config/registry.php'; $_SERVER = array('SCRIPT_URL' => '/webroot.php', 'SCRIPT_NAME' => '/webroot.php', 'PHP_SELF' => '/webroot.php'); var_dump(_detect_webroot()); // Windows tests $DIRECTORY_SEPARATOR = '\\'; $FILE = 'c:\inetpub\wwwroot\horde\config\registry.php'; $_SERVER = array('SCRIPT_NAME' => '/horde/webroot.php', 'PHP_SELF' => '/horde/webroot.php'); var_dump(_detect_webroot()); $FILE = 'C:\Inetpub\vhosts\example.com\subdomain\webmail\config\registry.php'; $_SERVER = array('SCRIPT_NAME' => '/webroot.php', 'PHP_SELF' => '/webroot.php'); var_dump(_detect_webroot()); ?> --EXPECT-- string(6) "/horde" string(6) "/horde" string(6) "/horde" string(0) "" string(0) "" string(15) "/~foo/hordehead" string(0) "" string(6) "/horde" string(0) "" tmpjWNuGb/horde-5.1.5/lib/Tree/0000755000175000017500000000000012262230550016014 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/lib/Tree/Renderer/0000755000175000017500000000000012262230550017562 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/lib/Tree/Renderer/Menu.php0000644000175000017500000000410612233761316021207 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ class Horde_Tree_Renderer_Menu extends Horde_Tree_Renderer_Base { /** * Returns the tree. * * @param boolean $static Unused. * * @return string The HTML code of the rendered tree. */ public function getTree($static = false) { $view = $GLOBALS['injector']->getInstance('Horde_View'); $view->setTemplatePath($GLOBALS['registry']->get('templates', 'horde') . '/tree'); $view->rootItems = $this->_tree->getRootNodes(); $view->items = $this->_tree->getNodes(); return $view->render('menu'); } /** * Returns just the JS node definitions as a string. * * @return object Object with the following properties: 'files', * 'nodes', 'root_nodes'. */ public function renderNodeDefinitions() { $result = new stdClass; $result->nodes = $this->_tree->getNodes(); $result->root_nodes = $this->_tree->getRootNodes(); $result->files = array(); /* Ignore files that are already loaded before building the tree. */ $ignored = array('prototype.js', 'hordetree.js', 'accesskeys.js', 'topbar.js'); foreach ($GLOBALS['page_output']->hsl as $val) { if (!in_array($val->file, $ignored)) { $result->files[] = strval($val->url); } } return $result; } } tmpjWNuGb/horde-5.1.5/lib/Tree/Renderer/Sidebar.php0000644000175000017500000000260612233761316021657 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ class Horde_Tree_Renderer_Sidebar extends Horde_Tree_Renderer_Base { /** * Returns the tree. * * @param boolean $static Unused. * * @return string The HTML code of the rendered tree. */ public function getTree($static = false) { $view = $GLOBALS['injector']->getInstance('Horde_View'); $view->setTemplatePath(array( $GLOBALS['registry']->get('templates', 'horde') . '/sidebar', $GLOBALS['registry']->get('templates', 'horde') . '/tree' )); $view->rootItems = $this->_tree->getRootNodes(); $view->items = $this->_tree->getNodes(); return $view->render('sidebar'); } } tmpjWNuGb/horde-5.1.5/bin/0000755000175000017500000000000012262230550015117 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/bin/horde-translation0000755000175000017500000021167212233761315020521 0ustar mathieumathieu#!/usr/bin/env php _redirErr = substr(PHP_OS, 0, 3) == 'WIN' ? '' : ' 2>&1'; $this->currentDir = getcwd(); } /** * Shortcut for Horde_Cli::writeln(). * * @param string $message The text to write on the screen. */ public function writeln($message) { $this->cli->writeln($message); } /** * Prints the footer and halts the script. */ public function footer() { $this->writeln(); $this->writeln('Please report any bugs to i18n@lists.horde.org.'); chdir($this->currentDir); exit; } /** * Prints usage information. */ public function usage() { if (count($this->options[1]) && ($this->options[1][0] == 'help' && !empty($this->options[1][1]) || !empty($this->options[1][0]) && in_array($this->options[1][0], array('commit', 'compendium', 'extract', 'init', 'make', 'merge')))) { if ($this->options[1][0] == 'help') { $cmd = $this->options[1][1]; } else { $cmd = $this->options[1][0]; } $this->writeln('Usage:' . ' horde-translation [options] ' . $cmd . ' [command-options]'); if (!empty($cmd)) { $this->writeln(); $this->writeln('Command options:'); } switch ($cmd) { case 'cleanup': $this->writeln(' -l, --locale=ll Use only this locale.'); $this->writeln(' -m, --module=MODULE Cleanup PO files only for this (Horde) module.'); break; case 'commit': case 'commit-help': $this->writeln(' -l, --locale=ll Use this locale.'); $this->writeln(' -m, --module=MODULE Commit translations only for this (Horde) module.'); $this->writeln(' -M, --message=MESSAGE Use this commit message instead of the default ones.'); $this->writeln(' -n, --new This is a new translation, commit also CREDITS,'); $this->writeln(' CHANGES and nls.php.'); $this->writeln(' -s, --skip Skip all modules that are not maintained in CVS.'); break; case 'compendium': $this->writeln(' -a, --add=FILE Add this PO file to the compendium. Useful to'); $this->writeln(' include a compendium from a different branch to'); $this->writeln(' the generated compendium.'); $this->writeln(' -d, --directory=DIR Create compendium in this directory.'); $this->writeln(' -l, --locale=ll Use this locale.'); break; case 'extract': $this->writeln(' -m, --module=MODULE Generate POT file only for this (Horde) module.'); break; case 'init': $this->writeln(' -l, --locale=ll Use this locale.'); $this->writeln(' -m, --module=MODULE Create a PO file only for this (Horde) module.'); $this->writeln(' -c, --compendium=FILE Use this compendium file instead of the default'); $this->writeln(' one (compendium.po in the horde/locale directory).'); $this->writeln(' -n, --no-compendium Don\'t use a compendium.'); break; case 'make': $this->writeln(' -l, --locale=ll Use only this locale.'); $this->writeln(' -m, --module=MODULE Build MO files only for this (Horde) module.'); $this->writeln(' -c, --compendium=FILE Merge new translations to this compendium file'); $this->writeln(' instead of the default one (compendium.po in the'); $this->writeln(' horde/locale directory.'); $this->writeln(' -n, --no-compendium Don\'t merge new translations to the compendium.'); $this->writeln(' -s, --statistics Save translation statistics in a local file.'); break; case 'make-help': case 'update-help': $this->writeln(' -l, --locale=ll Use only this locale.'); $this->writeln(' -m, --module=MODULE Update help files only for this (Horde) module.'); break; case 'merge': $this->writeln(' -l, --locale=ll Use this locale.'); $this->writeln(' -m, --module=MODULE Merge PO files only for this (Horde) module.'); $this->writeln(' -c, --compendium=FILE Use this compendium file instead of the default'); $this->writeln(' one (compendium.po in the horde/locale directory).'); $this->writeln(' -n, --no-compendium Don\'t use a compendium.'); break; case 'update': $this->writeln(' -l, --locale=ll Use this locale.'); $this->writeln(' -m, --module=MODULE Update only this (Horde) module.'); $this->writeln(' -c, --compendium=FILE Use this compendium file instead of the default'); $this->writeln(' one (compendium.po in the horde/locale directory).'); $this->writeln(' -n, --no-compendium Don\'t use a compendium.'); break; } } else { $this->writeln('Usage:' . ' horde-translation [options] command [command-options]'); $this->writeln(str_repeat(' ', Horde_String::length('Usage:')) . ' horde-translation [help|-h|--help] [command]'); $this->writeln(); $this->writeln('Helper application to create and maintain translations for the Horde'); $this->writeln('framework and its applications.'); $this->writeln('For further information, see horde/docs/TRANSLATIONS.'); $this->writeln(); $this->writeln('Commands:'); $this->writeln(' help Show this help message.'); $this->writeln(' compendium Rebuild the compendium file. Warning: This overwrites the'); $this->writeln(' current compendium.'); $this->writeln(' extract Generate PO template (.pot) files.'); $this->writeln(' init Create one or more PO files for a new locale. Warning: This'); $this->writeln(' overwrites the existing PO files of this locale.'); $this->writeln(' merge Merge the current PO file with the current PO template file.'); $this->writeln(' update Run extract and merge sequent.'); $this->writeln(' update-help Extract all new and changed entries from the English XML help'); $this->writeln(' file and merge them with the existing ones.'); $this->writeln(' cleanup Cleans the PO files up from untranslated and obsolete entries.'); $this->writeln(' make Build binary MO files from the specified PO files.'); $this->writeln(' make-help Mark all entries in the XML help file being up-to-date and'); $this->writeln(' prepare the file for the next execution of update-help. You'); $this->writeln(' should only run make-help AFTER update-help and revising the'); $this->writeln(' help file.'); $this->writeln(' commit Commit translations to the CVS server.'); $this->writeln(' commit-help Commit help files to the CVS server.'); } $this->writeln(); $this->writeln('Options:'); $this->writeln(' -b, --base=/PATH Full path to the (Horde) base directory that should be'); $this->writeln(' used.'); $this->writeln(' -d, --debug Show error messages from the executed binaries.'); $this->writeln(' -h, --help Show this help message.'); $this->writeln(' -t, --test Show the executed commands but don\'t run anything.'); } /** * Checks that all necessary binaries are available and have the correct * version. * * Also sets the binary locations as object properties, * e.g. $this->msgattrib, etc. */ public function check_binaries() { $this->writeln('Searching gettext binaries...'); foreach (array('gettext', 'msgattrib', 'msgcat', 'msgcomm', 'msgfmt', 'msginit', 'msgmerge', 'xgettext') as $binary) { $this->$binary = System::which($binary); if (!$this->$binary) { $this->cli->message($binary . ' not found', 'cli.error'); $this->footer(); } $this->cli->message($binary . ' found: ' . $this->$binary, 'cli.success'); } $this->writeln(); $out = ''; exec($this->gettext . ' --version', $out, $ret); $split = explode(' ', $out[0]); $version_string = 'gettext version: ' . $split[count($split) - 1]; $gettext_version = explode('.', $split[count($split) - 1]); if ($gettext_version[0] == 0 && $gettext_version[1] < 12) { $this->writeln(); $this->cli->message($version_string, 'cli.error'); $this->cli->message('Your gettext version is too old and does not support PHP natively.', 'cli.error'); $this->footer(); } $this->cli->message($version_string, 'cli.success'); $this->writeln(); } /** * Searches for files matching a PCRE. * * @param string $file Regular expression of the file names to search * for. * @param string $dir The directory to search. * @param boolean $local Whether to search only the directory. If false, * all sub-directories will be searched too. * * @return array A list of file names. */ public function search_file($file, $dir = '.', $local = false) { if (substr($file, 0, 1) != '/') { $file = "/$file/"; } if ($local) { $files = $this->ff->glob($file, $dir, 'perl'); $files = array_map(create_function('$file', 'return "' . $dir . DS . '" . $file;'), $files); return $files; } return $this->ff->search($file, $dir, 'perl', false); } /** * Searches for files with a certain extension. * * @param string $ext The extension to search for. * @param string $dir The directory to search. * @param boolean $local Whether to search only the directory. If false, * all sub-directories will be searched too. * * @return array A list of file names. */ public function search_ext($ext, $dir = '.', $local = false) { return $this->search_file("^[^.].*\\.$ext\$", $dir, $local); } /** * Returns all .po files from a directory. * * @param string $dir The directory to search. * * @return array A list of .po files. */ public function get_po_files($dir) { $langs = $this->search_ext('po', $dir); if (($key = array_search($dir . DS . 'messages.po', $langs)) !== false) { unset($langs[$key]); } if (($key = array_search($dir . DS . 'compendium.po', $langs)) !== false) { unset($langs[$key]); } return $langs; } /** * Returns all translation languages from a directory. * * @param string $dir The directory to search. * * @return array A list of languages. */ public function get_languages($dir) { chdir($dir); $langs = $this->get_po_files('locale'); $langs = array_map('basename', array_map('dirname', array_map('dirname', $langs))); chdir($this->currentDir); return $langs; } /** * Searches all translateable applications and framework libraries. */ public function search_modules() { if (is_dir(BASE . '/horde/locale')) { $this->dirs[] = BASE . '/horde'; } elseif (is_dir(BASE . '/locale')) { $this->dirs[] = BASE; } $dh = opendir(BASE); if (!$dh) { return array(); } while ($entry = readdir($dh)) { $dir = BASE . '/' . $entry; if (!is_dir($dir) || substr($entry, 0, 1) == '.' || fileinode(HORDE_BASE) == fileinode($dir)) { continue; } $sub = opendir($dir); if (!$sub) { continue; } while ($subentry = readdir($sub)) { if ($subentry == 'locale' && is_dir($dir . '/' . $subentry)) { $this->dirs[] = $dir; break; } if ($entry != 'framework') { continue; } $framework = opendir($dir . '/' . $subentry); if (!$framework) { continue; } while ($package = readdir($framework)) { if ($package == 'locale' && is_dir($dir . '/' . $subentry . '/' . $package)) { $this->dirs[] = $dir . '/' . $subentry; break; } } } } $this->apps = $this->strip_horde($this->dirs); $this->apps[0] = 'horde'; } /** * Converts path names into application or library names. * * @param string|array $file A path name or a list of path names. * * @return string|array A module name or a list of module names. */ public function strip_horde($file) { if (is_array($file)) { return array_map(array($this, 'strip_horde'), $file); } else { return str_replace(array(BASE . DS, 'framework/'), array('', 'Horde_'), $file); } } /** * Extracts messages from the source code. * * @param array $options Command line arguments. */ public function xtract($options) { foreach ($options as $option) { switch ($option[0]) { case 'h': $this->usage(); $this->footer(); case 'm': case '--module': $module = $option[1]; break; } } for ($i = 0; $i < count($this->dirs); $i++) { if (!empty($module) && $module != $this->apps[$i]) { continue; } printf('Extracting from %s... ', $this->apps[$i]); chdir($this->dirs[$i]); /* Match all *.php and *.inc files in the current directory and * sub-directories, unless they match *.local.php or have a * directory name *.d/ in the path. */ $regexp = ';(?apps[$i] == 'horde') { $files = glob('*.php'); foreach (array('admin', 'bin', 'config', 'lib', 'rpc', 'scripts', 'services', 'templates', 'themes', 'util') as $dir) { $files = array_merge($files, $this->ff->search($regexp, $dir, 'perl', true)); } } else { $files = $this->ff->search($regexp, '.', 'perl', true); } $file = 'locale' . DS . $this->apps[$i] . '.pot'; /* Store the file list because it gets too long to be passed on the * command line. */ file_put_contents($file . '.list', implode("\n", $files)); if (file_exists($file) && !is_writable($file)) { $this->climessage(sprintf('%s is not writable.', $file), 'cli.error'); $this->footer(); } /* We must use a .pot extension, otherwise msgcomm complains about * an invalid charset being used in this file. */ $tmp_file = $file . '.tmp.pot'; if (file_exists($this->dirs[$i] . '/lib/Application.php')) { include_once $this->dirs[$i] . '/lib/Application.php'; $className = $this->apps[$i] . '_Application'; $appOb = new $className; $version = $appOb->version; } else { include_once $this->dirs[$i] . '/lib/version.php'; $version = constant(strtoupper($this->apps[$i]) . '_VERSION'); } $sh = $this->xgettext . ' --language=PHP' . ' --from-code=iso-8859-1' . ' --keyword=_ --keyword=ngettext --keyword=t --keyword=n' . ' --sort-output' . ' --package-name=' . ($this->apps[$i] == 'imp' ? 'IMP' : ucfirst($this->apps[$i])) . ' --package-version="' . $version . '"' . ' --copyright-holder="Horde LLC (http://www.horde.org/)"' . ' --msgid-bugs-address="dev@lists.horde.org"' . ' --files-from=' . $file . '.list' . ' --output=' . $tmp_file; if ($this->debug) { $sh .= $this->silence; } if ($this->debug || $this->test) { $this->writeln('Executing:'); $this->writeln($sh); } if (!$this->test) { exec($sh); } unlink($file . '.list'); $app = $this->apps[$i] == 'imp' ? 'IMP' : ucfirst($this->apps[$i]); file_put_contents($tmp_file, str_replace('PACKAGE package.', $app . ' package.', file_get_contents($tmp_file))); $diff = array(); if (file_exists($tmp_file)) { /* Search for Horde_Template template files and extract * tags manually. */ $files = $this->search_ext('html', 'templates'); if (!$this->test) $tmp = fopen($file . '.templates', 'w'); foreach ($files as $template) { $fp = fopen($template, 'r'); $lineno = 0; while (($line = fgets($fp, 4096)) !== false) { $lineno++; $offset = 0; while (($left = strpos($line, '', $offset)) !== false) { $left += 9; $buffer = ''; $linespan = 0; while (($end = strpos($line, '', $left)) === false) { $buffer .= substr($line, $left); $left = 0; $line = fgets($fp, 4096); $linespan++; if ($line === false) { $this->climessage(sprintf(" tag not closed in file %s.\nOpening tag found in line %d.", $template, $lineno), 'cli.warning'); break 2; } } $buffer .= substr($line, $left, $end - $left); if (!$this->test) { fwrite($tmp, "#: $template:$lineno\n"); fwrite($tmp, 'msgid "' . str_replace(array('"', "\n"), array('\"', "\\n\"\n\""), $buffer) . "\"\n"); fwrite($tmp, 'msgstr ""' . "\n\n"); } $offset = $end + 10; } } fclose($fp); } /* Merge with the base .pot file. */ if (!$this->test) fclose($tmp); $sh = $this->msgcomm . " --more-than=0 --sort-output \"$tmp_file\" \"$file.templates\" --output-file \"$tmp_file\"" . $this->silence; if ($this->debug || $this->test) { $this->writeln('Executing:'); $this->writeln($sh); } if (!$this->test) { exec($sh); unlink($file . '.templates'); } /* Parse conf.xml files for tags. */ if (file_exists('config/conf.xml')) { if (!$this->test) $tmp = fopen($file . '.config', 'w'); $conf_content = file_get_contents('config/conf.xml'); if (!$this->test && preg_match_all('/([^<]*_\(".+?"\)[^<]*)<\/configphp>/s', $conf_content, $matches)) { foreach ($matches[1] as $configphp) { if (!preg_match_all('/_\("(.+?)"\)/', $configphp, $strings)) { continue; } foreach ($strings[1] as $string) { fwrite($tmp, "#: config/conf.xml\n"); fwrite($tmp, 'msgid "' . $string . "\"\n"); fwrite($tmp, 'msgstr ""' . "\n\n"); } } } if (!$this->test) fclose($tmp); /* Merge with the base .pot file. */ $sh = $this->msgcomm . " --more-than=0 --sort-output \"$tmp_file\" \"$file.config\" --output-file \"$tmp_file\"" . $this->silence; if ($this->debug || $this->test) { $this->writeln('Executing:'); $this->writeln($sh); } if (!$this->test) { exec($sh); unlink($file . '.config'); } } /* Check if the new .pot file has any changed content at * all. */ if (file_exists($file)) { $diff = array_merge(array_diff(file($tmp_file), file($file)), array_diff(file($file), file($tmp_file))); $diff = preg_grep('/^("POT-Creation-Date:|"Project-Id-Version:)/', $diff, PREG_GREP_INVERT); } } if (!file_exists($file) || count($diff)) { if (file_exists($file)) { unlink($file); } rename($tmp_file, $file); $this->writeln($this->cli->green('updated')); } else { if (file_exists($tmp_file)) { unlink($tmp_file); } $this->writeln($this->cli->bold('not changed')); } chdir($this->currentDir); } } /** * Merges old translations with new .pot files and optionally a compendium. * * @param array $options Command line arguments. */ public function merge($options) { $compendium = ' --compendium="' . HORDE_BASE . DS . 'locale' . DS . 'compendium.po"'; foreach ($options as $option) { switch ($option[0]) { case 'h': $this->usage(); $this->footer(); case 'l': case '--locale': $lang = $option[1]; break; case 'm': case '--module': $module = $option[1]; break; case 'c': case '--compendium': $compendium = ' --compendium=' . $option[1]; break; case 'n': case '--no-compendium': $compendium = ''; break; } } $this->cleanup($options); for ($i = 0; $i < count($this->dirs); $i++) { if (!empty($module) && $module != $this->apps[$i]) { continue; } $this->writeln(sprintf('Merging translation for module %s...', $this->cli->bold($this->apps[$i]))); $dir = $this->dirs[$i] . DS . 'locale' . DS; $po = $dir . '%s' . DS . 'LC_MESSAGES' . DS . $this->apps[$i] . '.po'; if (empty($lang)) { $langs = $this->get_languages($this->dirs[$i]); } else { if (!file_exists(sprintf($po, $lang))) { $this->writeln('Skipped...'); $this->writeln(); continue; } $langs = array($lang); } foreach ($langs as $locale) { $this->writeln(sprintf('Merging locale %s... ', $this->cli->bold($locale))); $sh = $this->msgmerge . sprintf(' --update -v%s "%s" "%s.pot"', $compendium, sprintf($po, $locale), $dir . $this->apps[$i]); if ($this->debug || $this->test) { $this->writeln('Executing:'); $this->writeln($sh); } if (!$this->test) exec($sh); $this->writeln($this->cli->green('done')); } } } /** * Unused yet. * * @param array $options Command line arguments. */ public function status($options) { $output = 'status.html'; foreach ($options as $option) { switch ($option[0]) { case 'h': $this->usage(); $this->footer(); case 'l': case '--locale': $lang = $option[1]; break; case 'm': case '--module': $module = $option[1]; break; case 'o': case '--output': $output = $option[1]; break; } } for ($i = 0; $i < count($this->dirs); $i++) { if (!empty($module) && $module != $this->apps[$i]) { continue; } $this->writeln(sprintf('Generating status for module %s...', $this->cli->bold($this->apps[$i]))); if (empty($lang)) { $langs = $this->get_languages($this->dirs[$i]); } else { if (!file_exists($this->dirs[$i] . '/locale/' . $lang . '/LC_MESSAGES/' . $this->apps[$i] . '.po')) { $this->writeln('Skipped...'); $this->writeln(); continue; } $langs = array($lang); } foreach ($langs as $locale) { $this->writeln(sprintf('Status for locale %s... ', $this->cli->bold($locale))); } } } /** * Builds or updates a compendium. * * @param array $options Command line arguments. */ public function compendium($options) { $dir = HORDE_BASE . DS . 'locale' . DS; $add = ''; foreach ($options as $option) { switch ($option[0]) { case 'h': $this->usage(); $this->footer(); case 'l': case '--locale': $lang = $option[1]; break; case 'd': case '--directory': $dir = $option[1]; break; case 'a': case '--add': $add .= ' ' . $option[1]; break; } } if (!isset($lang)) { $this->cli->message('No locale specified.', 'cli.error'); $this->writeln(); $this->usage(); $this->footer(); } printf('Merging all %s.po files to the compendium... ', $lang); $pofiles = array(); for ($i = 0; $i < count($this->dirs); $i++) { $pofile = $this->dirs[$i] . DS . 'locale' . DS . $lang . DS . 'LC_MESSAGES' . DS . $this->apps[$i] . '.po'; if (file_exists($pofile)) { $pofiles[] = $pofile; } } if (!empty($dir) && substr($dir, -1) != DS) { $dir .= DS; } $sh = $this->msgcat . ' --sort-output ' . implode(' ', $pofiles) . $add . ' > ' . $dir . 'compendium.po ' . ($this->debug ? '' : $this->silence); if ($this->debug || $this->test) { $this->writeln(); $this->writeln('Executing:'); $this->writeln($sh); } if ($this->test) { $ret = 0; } else { exec($sh, $out, $ret); } if ($ret == 0) { $this->writeln($this->cli->green('done')); } else { $this->writeln($this->cli->red('failed')); } } /** * Creates initial translations. * * @param array $options Command line arguments. */ public function init($options) { foreach ($options as $option) { switch ($option[0]) { case 'h': $this->usage(); $this->footer(); case 'l': case '--locale': $lang = $option[1]; break; case 'm': case '--module': $module = $option[1]; break; } } if (empty($lang)) { $lang = getenv('LANG'); } for ($i = 0; $i < count($this->dirs); $i++) { if (!empty($module) && $module != $this->apps[$i]) { continue; } printf('Initializing module %s... ', $this->apps[$i]); $dir = $this->dirs[$i] . DS . 'locale' . DS; $targetdir = $dir . $lang . DS . 'LC_MESSAGES'; $pot = $dir . $this->apps[$i] . '.pot'; $po = $targetdir . DS . $this->apps[$i] . '.po'; if (!file_exists($pot)) { $this->writeln(); $this->cli->message(sprintf('%s not found. Run \'translation extract\' first.', $pot), 'cli.warning'); continue; } if (!is_dir($targetdir)) { if ($this->debug) { $this->writeln(sprintf('Making directory %s', $targetdir)); } if (!$this->test && !System::mkdir("-p $targetdir")) { $this->cli->message(sprintf('Could not create locale directory for locale %s:', $locale), 'cli.warning'); $this->writeln($targetdir); $this->writeln(); continue; } } $sh = $this->msginit . ' --no-translator -i ' . $pot; if (!empty($lang)) { $lcdir = $dir . $lang . DS . 'LC_MESSAGES'; $pofile = $lcdir . DS . $this->apps[$i] . '.po'; $sh .= ' --output-file ' . $po . ' --locale=' . $lang; if (!is_dir($lcdir) && !System::mkdir('-p ' . $lcdir)) { $this->cli->message(sprintf('Could not create locale directory for locale %s:', $locale), 'cli.warning'); $this->writeln($lcdir); $this->writeln(); continue; } } if (!$this->debug) { $sh .= $this->silence; } if ($this->debug || $this->test) { $this->writeln(); $this->writeln('Executing:'); $this->writeln($sh); } if ($this->test) { $ret = 0; } else { exec($sh, $out, $ret); } $app = $this->apps[$i] == 'imp' ? 'IMP' : ucfirst($this->apps[$i]); file_put_contents($po, str_replace(array('Language-Team: none', 'PACKAGE package.', 'Content-Type: text/plain; charset=ASCII'), array('Language-Team: i18n@lists.horde.org', $app . ' package.', 'Content-Type: text/plain; charset=UTF-8'), file_get_contents($po))); if ($ret == 0) { $this->writeln($this->cli->green('done')); } else { $this->writeln($this->cli->red('failed')); } } } /** * Compiles translations to .mo files. * * @param array $options Command line arguments. */ public function make($options) { $compendium = HORDE_BASE . DS . 'locale' . DS . 'compendium.po'; $save_stats = false; foreach ($options as $option) { switch ($option[0]) { case 'h': $this->usage(); $this->footer(); case 'l': case '--locale': $lang = $option[1]; break; case 'm': case '--module': $module = $option[1]; break; case 'c': case '--compendium': $compendium = $option[1]; break; case 'n': case '--no-compendium': $compendium = ''; break; case 's': case '--statistics': $save_stats = true; break; } } $horde = array_search('horde', $this->apps); $horde_msg = array(); $stats_array = array(); $stats = new Console_Table(); $stats->setHeaders(array('Module', 'Language', 'Translated', 'Fuzzy', 'Untranslated', 'Updated')); for ($i = 0; $i < count($this->dirs); $i++) { if (!empty($module) && $module != $this->apps[$i]) { continue; } $this->writeln(sprintf('Building MO files for module %s...', $this->cli->bold($this->apps[$i]))); $dir = $this->dirs[$i] . DS . 'locale' . DS . '%s' . DS . 'LC_MESSAGES' . DS; if (empty($lang)) { $langs = $this->get_languages($this->dirs[$i]); } else { if (!file_exists(sprintf($dir, $lang) . $this->apps[$i] . '.po')) { $this->writeln('Skipped...'); $this->writeln(); continue; } $langs = array($lang); } foreach ($langs as $locale) { $this->writeln(sprintf('Building locale %s...', $this->cli->bold($locale))); $targetdir = sprintf($dir, $locale); $pofile = $targetdir . $this->apps[$i] . '.po'; /* Convert to unix linebreaks. */ $content = str_replace("\r", '', file_get_contents($pofile)); file_put_contents($pofile, $content); /* Remember update date. */ $last_update = preg_match( '/^"PO-Revision-Date: (\d{4}-\d{2}-\d{2})/m', $content, $matches) ? $matches[1] : ''; /* Check PO file sanity. */ $sh = $this->msgfmt . " --check --output-file=/dev/null \"$pofile\" " . $this->_redirErr; if ($this->debug || $this->test) { $this->writeln('Executing:'); $this->writeln($sh); } if ($this->test) { $ret = 0; } else { exec($sh, $out, $ret); } if ($ret != 0) { $this->cli->message('An error has occured:', 'cli.warning'); $this->writeln(implode("\n", $out)); $this->writeln(); if ($this->apps[$i] == 'horde') { continue 2; } continue; } /* Compile MO file. */ $sh = $this->msgfmt . ' --statistics -o "' . $targetdir . $this->apps[$i] . '.mo" '; if ($this->apps[$i] != 'horde' && substr($this->apps[$i], 0, 6) != 'Horde_') { $horde_po = $this->dirs[$horde] . DS . 'locale' . DS . $locale . DS . 'LC_MESSAGES/horde.po'; if (!is_readable($horde_po)) { $this->cli->message(sprintf('The Horde PO file for the locale %s does not exist:', $locale), 'cli.warning'); $this->writeln($horde_po); $this->writeln(); $sh .= '"' . $targetdir . DS . $this->apps[$i] . '.po"'; } else { $sh = $this->msgcomm . " --more-than=0 --sort-output \"$pofile\" \"$horde_po\" | $sh -"; } } else { $sh .= '"' . $pofile . '"'; } $sh .= $this->_redirErr; if ($this->debug || $this->test) { $this->writeln('Executing:'); $this->writeln($sh); } $out = ''; if ($this->test) { $ret = 0; } else { exec($sh, $out, $ret); } if ($ret == 0) { $this->writeln($this->cli->green('done')); $messages = array(0, 0, 0, $last_update); if (preg_match('/(\d+) translated/', $out[0], $match)) { $messages[0] = $match[1]; if (substr($this->apps[$i], 0, 6) != 'Horde_' && isset($horde_msg[$locale])) { $messages[0] -= $horde_msg[$locale][0]; if ($messages[0] < 0) $messages[0] = 0; } } if (preg_match('/(\d+) fuzzy/', $out[0], $match)) { $messages[1] = $match[1]; if (substr($this->apps[$i], 0, 6) != 'Horde_' && isset($horde_msg[$locale])) { $messages[1] -= $horde_msg[$locale][1]; if ($messages[1] < 0) $messages[1] = 0; } } if (preg_match('/(\d+) untranslated/', $out[0], $match)) { $messages[2] = $match[1]; if (substr($this->apps[$i], 0, 6) != 'Horde_' && isset($horde_msg[$locale])) { $messages[2] -= $horde_msg[$locale][2]; if ($messages[2] < 0) $messages[2] = 0; } } if ($this->apps[$i] == 'horde') { $horde_msg[$locale] = $messages; } $stats_array[$this->apps[$i]][$locale] = $messages; $stats->addRow(array($this->apps[$i], $locale, $messages[0], $messages[1], $messages[2], $messages[3])); } else { $this->writeln($this->cli->red('failed')); exec($sh, $out, $ret); $this->writeln(implode("\n", $out)); } if (count($langs) > 1) { continue; } /* Merge translation into compendium. */ if (!empty($compendium)) { printf('Merging the PO file for %s to the compendium... ', $this->cli->bold($this->apps[$i])); if (!empty($targetdir) && substr($targetdir, -1) != DS) { $targetdir .= DS; } $sh = $this->msgcat . " --sort-output \"$compendium\" \"$pofile\" > \"$compendium.tmp\""; if (!$this->debug) { $sh .= $this->silence; } if ($this->debug || $this->test) { $this->writeln(); $this->writeln('Executing:'); $this->writeln($sh); } $out = ''; if ($this->test) { $ret = 0; } else { exec($sh, $out, $ret); } unlink($compendium); rename($compendium . '.tmp', $compendium); if ($ret == 0) { $this->writeln($this->cli->green('done')); } else { $this->writeln($this->cli->red('failed')); } } $this->writeln(); } } if (empty($module)) { $this->writeln('Results:'); } else { $this->writeln('Results (including Horde):'); } $this->writeln($stats->getTable()); if ($save_stats) { file_put_contents('translation_stats.txt', serialize($stats_array)); } } /** * Cleans up .po files, removing obsolete translations and optionally * untranslated strings. * * @param array $options Command line arguments. * @param boolean $keep_untranslated Whether to keep untranslated strings. */ public function cleanup($options, $keep_untranslated = false) { foreach ($options as $option) { switch ($option[0]) { case 'h': $this->usage(); $this->footer(); case 'l': case '--locale': $lang = $option[1]; break; case 'm': case '--module': $module = $option[1]; break; } } for ($i = 0; $i < count($this->dirs); $i++) { if (!empty($module) && $module != $this->apps[$i]) { continue; } $this->writeln(sprintf('Cleaning up PO files for module %s...', $this->cli->bold($this->apps[$i]))); $po = $this->dirs[$i] . DS . 'locale' . DS . '%s' . DS . 'LC_MESSAGES' .DS . $this->apps[$i] . '.po'; if (empty($lang)) { $langs = $this->get_languages($this->dirs[$i]); } else { $this->writeln(sprintf($po, $lang)); if (!file_exists(sprintf($po, $lang))) { $this->writeln('Skipped...'); $this->writeln(); continue; } $langs = array($lang); } foreach ($langs as $locale) { $this->writeln(sprintf('Cleaning up locale %s... ', $this->cli->bold($locale))); $pofile = sprintf($po, $locale); $sh = $this->msgattrib . ($keep_untranslated ? '' : ' --translated') . " --no-obsolete --force-po \"$pofile\" > \"$pofile.tmp\""; if (!$this->debug) { $sh .= $this->silence; } if ($this->debug || $this->test) { $this->writeln(); $this->writeln('Executing:'); $this->writeln($sh); } $out = ''; if ($this->test) { $ret = 0; } else { exec($sh, $out, $ret); } if ($ret == 0) { unlink($pofile); rename($pofile . '.tmp', $pofile); $this->writeln($this->cli->green('done')); } else { unlink($pofile . '.tmp', $pofile); $this->writeln($this->cli->red('failed')); } $this->writeln(); } } } /** * Commits tranlations to either CVS or Git. * * @param array $options Command line arguments. * @param boolean $help_only Whether to only commit help files. */ public function commit($options, $help_only = false) { $dirs = $this->dirs; $apps = $this->apps; $docs = $skip = $lang = false; $git = is_dir(BASE . '/.git'); foreach ($options as $option) { switch ($option[0]) { case 'h': $this->usage(); $this->footer(); case 'l': case '--locale': $lang = $option[1]; break; case 'm': case '--module': $module = $option[1]; break; case 'n': case '--new': $docs = true; break; case 'M': case '--message': $msg = $option[1]; break; case 's': case '--skip': $skip = true; break; } } $files = array(); for ($i = 0; $i < count($dirs); $i++) { if ((!empty($module) && $module != $apps[$i]) || (!$git && $skip && !is_dir($dirs[$i] . DS . 'CVS'))) { continue; } if ($apps[$i] == 'horde') { $dirs[] = $dirs[$i] . DS . 'admin'; $apps[] = 'horde/admin'; if (!empty($module)) { $module = 'horde/admin'; } } if (empty($lang)) { if ($help_only) { $files = array_merge($files, $this->strip_horde($this->search_ext('xml', $dirs[$i] . DS . 'locale'))); } elseif ($git) { $files = array_merge($files, $this->search_file('^[a-z]{2}(_[A-Z]{2})?', $dirs[$i] . DS . 'locale', true)); } else { $files = array_merge($files, $this->strip_horde($this->get_po_files($dirs[$i] . DS . 'po'))); $files = array_merge($files, $this->strip_horde($this->search_file('^[a-z]{2}(_[A-Z]{2})?', $dirs[$i] . DS . 'locale', true))); } } else { if (!is_dir($dirs[$i] . DS . 'locale' . DS . $lang)) { continue; } if ($help_only && !file_exists($dirs[$i] . DS . 'locale' . DS . $lang . DS . 'help.xml')) { continue; } if ($git) { $files[] = $dirs[$i] . DS . 'locale' . DS . $lang; } else { $files[] = $this->strip_horde($dirs[$i] . DS . 'locale' . DS . $lang); } } if ($docs && !$help_only && $apps[$i]) { $files[] = $this->strip_horde($dirs[$i] . DS . 'docs'); if ($apps[$i] == 'horde') { $horde_conf = $dirs[array_search('horde', $dirs)] . DS . 'config' . DS; $files[] = $this->strip_horde($horde_conf . 'nls.php'); } } } chdir(BASE); if (count($files)) { if ($docs) { $this->writeln('Adding new files to repository:'); $add_files = array(); foreach ($files as $file) { if (strstr($file, 'locale')) { $add_files[] = $file; $this->writeln($file); } } foreach ($files as $file) { if (strstr($file, 'locale')) { if ($help_only) { $add_files[] = $file . DS . '*.xml'; $this->writeln($file . DS . '*.xml'); } else { $add_files[] = $file . DS . '*.xml ' . $file . DS . 'LC_MESSAGES'; $this->writeln($file . DS . "*.xml\n$file" . DS . 'LC_MESSAGES'); } } } if (!$help_only) { foreach ($files as $file) { if (strstr($file, 'locale')) { $this->writeln($add_files[] = $file . DS . 'LC_MESSAGES' . DS . '*.po'); $this->writeln($add_files[] = $file . DS . 'LC_MESSAGES' . DS . '*.mo'); } } } $this->writeln(); if ($git) { if ($this->debug || $this->test) { $this->writeln('Executing:'); $this->writeln('git add ' . implode(' ', $add_files)); } if (!$this->test) { system('git add ' . implode(' ', $add_files)); } } else { foreach ($add_files as $add_file) { if ($this->debug || $this->test) { $this->writeln('Executing:'); $this->writeln('cvs add ' . $add_file); } if (!$this->test) { system('cvs add ' . $add_file); } } } $this->writeln(); } $this->writeln('Committing:'); $this->writeln(implode(' ', $files)); if (!empty($lang)) { $lang = ' ' . $lang; } if (empty($msg)) { if ($docs) { $msg = "Add$lang translation."; } elseif ($help_only) { $msg = "Update$lang help file."; } else { $msg = "Update$lang translation."; } } if ($git) { $sh = 'git add ' . implode(' ', $files) . '; git commit -m "' . $msg . '"'; } else { $sh = 'cvs commit -m "' . $msg . '" ' . implode(' ', $files); } if ($this->debug || $this->test) { $this->writeln('Executing:'); $this->writeln($sh); } if (!$this->test) system($sh); if ($git) { $this->cli->message('You have to push the commit manually!', 'cli.warning'); } } } /** * Merges old help translations with new English versions. * * @param array $options Command line arguments. */ public function update_help($options) { $dirs = $this->dirs; $apps = $this->apps; foreach ($options as $option) { switch ($option[0]) { case 'h': $this->usage(); $this->footer(); case 'l': case '--locale': $lang = $option[1]; break; case 'm': case '--module': $module = $option[1]; break; } } $files = array(); for ($i = 0; $i < count($dirs); $i++) { if (!empty($module) && $module != $apps[$i]) { continue; } if (!is_dir("$dirs[$i]/locale")) { continue; } if ($apps[$i] == 'horde') { $dirs[] = $dirs[$i] . DS . 'admin'; $apps[] = 'horde/admin'; if (!empty($module)) { $module = 'horde/admin'; } } if (empty($lang)) { $files = $this->search_file('help.xml', $dirs[$i] . DS . 'locale'); } else { $files = array($dirs[$i] . DS . 'locale' . DS . $lang . DS . 'help.xml'); } $file_en = $dirs[$i] . DS . 'locale' . DS . 'en' . DS . 'help.xml'; if (!file_exists($file_en)) { $this->cli->message(sprintf('There doesn\'t yet exist a help file for %s.', $this->cli->bold($apps[$i])), 'cli.warning'); $this->writeln(); continue; } foreach ($files as $file_loc) { $locale = substr($file_loc, 0, strrpos($file_loc, DS)); $locale = substr($locale, strrpos($locale, DS) + 1); if ($locale == 'en') { continue; } if (!file_exists($file_loc)) { $this->cli->message(sprintf('The %s help file for %s doesn\'t yet exist. Creating a new one.', $this->cli->bold($locale), $this->cli->bold($apps[$i])), 'cli.warning'); $dir_loc = substr($file_loc, 0, -9); if (!is_dir($dir_loc)) { if ($this->debug || $this->test) { $this->writeln(sprintf('Making directory %s', $dir_loc)); } if (!$this->test && !System::mkdir("-p $dir_loc")) { $this->cli->message(sprintf('Could not create locale directory for locale %s:', $locale), 'cli.warning'); $this->writeln($dir_loc); $this->writeln(); continue; } } if ($this->debug || $this->test) { $this->writeln(wordwrap(sprintf('Copying %s to %s', $file_en, $file_loc))); } if (!$this->test && !copy($file_en, $file_loc)) { $this->cli->message(sprintf('Could not copy %s to %s', $file_en, $file_loc), 'cli.warning'); } $this->writeln(); continue; } $this->writeln(sprintf('Updating %s help file for %s.', $this->cli->bold($locale), $this->cli->bold($apps[$i]))); if (!($doc_en = DOMDocument::load($file_en))) { $this->cli->message(sprintf('There was an error opening the file %s. Try running the translation script with the flag -d to see any error messages from the xml parser.', $file_en), 'cli.warning'); $this->writeln(); continue 2; } $doc_en->encoding = 'UTF-8'; $doc_en->formatOutput = true; if (!($doc_loc = DOMDocument::load($file_loc))) { $this->cli->message(sprintf('There was an error opening the file %s. Try running the translation script with the flag -d to see any error messages from the xml parser.', $file_loc), 'cli.warning'); $this->writeln(); continue; } $count_uptodate = $count_new = $count_changed = $count_unknown = 0; $date = date('Y-m-d'); $xpath = new DOMXPath($doc_loc); foreach ($doc_en->getElementsByTagName('entry') as $entry) { $view = $entry->parentNode; while ($view->tagName != 'view' && $view != $doc_en) { $view = $view->parentNode; } $query = '//entry[@id="' . $entry->getAttribute('id') . '"]'; if ($view->tagName == 'view') { $query = '//view[@id="' . $view->getAttribute('id') . '"]'. $query; } $list = $xpath->query($query); if ($list->length) { $entry_loc = $doc_en->importNode($list->item(0), true); if ($entry_loc->hasAttribute('md5') && md5($entry->textContent) != $entry_loc->getAttribute('md5')) { $comment = $doc_en->createComment(" English entry ($date):\n" . str_replace('--', '--', $doc_en->saveXML($entry))); $entry_loc->appendChild($comment); $entry_loc->setAttribute('state', 'changed'); $count_changed++; } else { if (!$entry_loc->hasAttribute('state')) { $comment = $doc_en->createComment(" English entry ($date):\n" . str_replace('--', '--', $doc_en->saveXML($entry))); $entry_loc->appendChild($comment); $entry_loc->setAttribute('state', 'unknown'); $count_unknown++; } else { $count_uptodate++; } } } else { $entry_loc = $doc_en->importNode($entry, true); $entry_loc->setAttribute('state', 'new'); $count_new++; } $entry->parentNode->replaceChild($entry_loc, $entry); } $this->writeln(wordwrap(sprintf('Entries: %d total, %d up-to-date, %d new, %d changed, %d unknown', $count_uptodate + $count_new + $count_changed + $count_unknown, $count_uptodate, $count_new, $count_changed, $count_unknown))); if ($this->debug || $this->test) { $this->writeln(wordwrap(sprintf('Writing updated help file to %s.', $file_loc))); } if (!$this->test) { $doc_en->save($file_loc); } $this->writeln(); } } } /** * Marks all entries in help files as translated. * * @param array $options Command line arguments. */ public function make_help($options) { $dirs = $this->dirs; $apps = $this->apps; foreach ($options as $option) { switch ($option[0]) { case 'h': $this->usage(); $this->footer(); case 'l': case '--locale': $lang = $option[1]; break; case 'm': case '--module': $module = $option[1]; break; } } $files = array(); for ($i = 0; $i < count($dirs); $i++) { if (!empty($module) && $module != $apps[$i]) { continue; } if (!is_dir("$dirs[$i]/locale")) continue; if ($apps[$i] == 'horde') { $dirs[] = $dirs[$i] . DS . 'admin'; $apps[] = 'horde/admin'; if (!empty($module)) { $module = 'horde/admin'; } } if (empty($lang)) { $files = $this->search_file('help.xml', $dirs[$i] . DS . 'locale'); } else { $files = array($dirs[$i] . DS . 'locale' . DS . $lang . DS . 'help.xml'); } $file_en = $dirs[$i] . DS . 'locale' . DS . 'en' . DS . 'help.xml'; if (!file_exists($file_en)) { continue; } if (!($doc_en = DOMDocument::load($file_en))) { $this->cli->message(sprintf('There was an error opening the file %s. Try running the translation script with the flag -d to see any error messages from the xml parser.', $file_en), 'cli.warning'); $this->writeln(); continue; } $xpath = new DOMXPath($doc_en); foreach ($files as $file_loc) { if (!file_exists($file_loc)) { $this->writeln('Skipped...'); $this->writeln(); continue; } $locale = substr($file_loc, 0, strrpos($file_loc, DS)); $locale = substr($locale, strrpos($locale, DS) + 1); if ($locale == 'en') continue; $this->writeln(sprintf('Updating %s help file for %s.', $this->cli->bold($locale), $this->cli->bold($apps[$i]))); if (!($doc_loc = DOMDocument::load($file_loc))) { $this->cli->message(sprintf('There was an error opening the file %s. Try running the translation script with the flag -d to see any error messages from the xml parser.', $file_loc), 'cli.warning'); $this->writeln(); continue; } $doc_loc->encoding = 'UTF-8'; $doc_loc->formatOutput = true; $count_all = $count = 0; foreach ($doc_loc->getElementsByTagName('entry') as $entry) { foreach ($entry->childNodes as $child) { if ($child->nodeType == XML_COMMENT_NODE && strstr($child->nodeValue, 'English entry')) { $entry->removeChild($child); } } $count_all++; $view = $entry->parentNode; while ($view->tagName != 'view' && $view != $doc_en) { $view = $view->parentNode; } $query = '//entry[@id="' . $entry->getAttribute('id') . '"]'; if ($view->tagName == 'view') { $query = '//view[@id="' . $view->getAttribute('id') . '"]'. $query; } $list = $xpath->query($query); if ($list->length) { $entry->setAttribute('md5', md5($list->item(0)->textContent)); $entry->setAttribute('state', 'uptodate'); $count++; } else { $this->cli->message(sprintf('No entry with the id "%s" exists in the original help file.', $entry->getAttribute('id')), 'cli.warning'); } } if (!$this->test) { $doc_loc->save($file_loc); } $this->writeln(sprintf('%d of %d entries marked as up-to-date', $count, $count_all)); $this->writeln(); } } } } define('DS', DIRECTORY_SEPARATOR); putenv('LANG=en'); $baseFile = __DIR__ . '/../lib/Application.php'; if (file_exists($baseFile)) { require_once $baseFile; } else { require_once 'PEAR/Config.php'; require_once PEAR_Config::singleton() ->get('horde_dir', null, 'pear.horde.org') . '/lib/Application.php'; } $c = new Horde_Cli(); if (!$c->runningFromCLI()) { $c->fatal('This script must be run from the command line.'); } $c->init(); $c->writeln($c->bold('---------------------------')); $c->writeln($c->bold('Horde translation generator')); $c->writeln($c->bold('---------------------------')); /* Instantiate main object. */ $script = new Horde_Translation_Script(); $script->cli = $c; $registry = new Horde_Support_Stub(); $injector = new Horde_Support_Stub(); /* Sanity checks */ if (!extension_loaded('gettext')) { $c->message('Gettext extension not found!', 'cli.error'); $script->footer(); } $c->writeln('Loading libraries...'); $libs_found = true; foreach (array('Console_Getopt', 'Console_Table', 'File_Find') as $class) { if (class_exists($class)) { $c->message(sprintf('%s found.', $class), 'cli.success'); } else { $c->message(sprintf('%s not found.', $class), 'cli.error'); $libs_found = false; } } if (!$libs_found) { $c->writeln(); $c->writeln('Make sure that you have PEAR installed and in your include path.'); $c->writeln('include_path: ' . ini_get('include_path')); $script->footer(); } $c->writeln(); /* Ensure E_STRICT is off as we are calling PEAR */ $old_error_reporting = error_reporting(E_ALL & ~E_STRICT); /* Commandline parameters */ $args = Console_Getopt::readPHPArgv(); $options = Console_Getopt::getopt($args, 'b:dht', array('base=', 'debug', 'help', 'test')); if (PEAR::isError($options) && $args[0] == $_SERVER['PHP_SELF']) { array_shift($args); $options = Console_Getopt::getopt($args, 'b:dht', array('base=', 'debug', 'help', 'test')); } if (PEAR::isError($options)) { $c->message('Argument error: ' . str_replace('Console_Getopt:', '', $options->getMessage()), 'cli.error'); $c->writeln(); $script->usage(); $script->footer(); } $script->options = $options; /* Back to old error reporting */ error_reporting($old_error_reporting); if (empty($options[0][0]) && empty($options[1][0])) { $c->message('No command specified.', 'cli.error'); $c->writeln(); $script->usage(); $script->footer(); } foreach ($options[0] as $option) { switch ($option[0]) { case 'b': case '--base': define('BASE', realpath($option[1])); break; case 'd': case '--debug': $script->debug = true; break; case 't': case '--test': $script->test = true; break; case 'h': case '--help': $script->usage(); $script->footer(); } } if (!$script->debug) { ini_set('error_reporting', false); } if (!defined('BASE')) { if (is_dir(HORDE_BASE . '/../.git')) { define('BASE', HORDE_BASE . '/..'); } else { define('BASE', HORDE_BASE); } } if ($options[1][0] == 'help') { $script->usage(); $script->footer(); } $script->silence = $script->debug || OS_WINDOWS ? '' : ' 2> /dev/null'; $options_list = array( 'cleanup' => array('hl:m:', array('module=', 'locale=')), 'commit' => array('hl:m:nM:s', array('module=', 'locale=', 'new', 'message=', 'skip')), 'commit-help'=> array('hl:m:nM:', array('module=', 'locale=', 'new', 'message=')), 'compendium' => array('hl:d:a:', array('locale=', 'directory=', 'add=')), 'extract' => array('hm:', array('module=')), 'init' => array('hl:m:nc:', array('module=', 'locale=', 'no-compendium', 'compendium=')), 'merge' => array('hl:m:c:n', array('module=', 'locale=', 'compendium=', 'no-compendium')), 'make' => array('hl:m:c:ns', array('module=', 'locale=', 'compendium=', 'no-compendium', 'statistics')), 'make-help' => array('hl:m:', array('module=', 'locale=')), 'update' => array('hl:m:c:n', array('module=', 'locale=', 'compendium=', 'no-compendium')), 'update-help'=> array('hl:m:', array('module=', 'locale=')), 'status' => array('hl:m:o:', array('module=', 'locale=', 'output=')) ); $options_arr = $options[1]; $cmd = array_shift($options_arr); if (array_key_exists($cmd, $options_list)) { $cmd_options = Console_Getopt::getopt($options_arr, $options_list[$cmd][0], $options_list[$cmd][1]); if (PEAR::isError($cmd_options)) { $c->message(str_replace('Console_Getopt:', '', $cmd_options->getMessage()), 'cli.error'); $c->writeln(); $script->usage(); $script->footer(); } } /* Searching modules */ $script->ff = new File_Find(); $script->check_binaries(); $c->writeln(sprintf('Searching Horde modules in %s', BASE)); $script->search_modules(); if ($script->debug) { $c->writeln('Found directories:'); $c->writeln(implode("\n", $script->dirs)); } $c->writeln(wordwrap(sprintf('Found modules: %s', implode(', ', $script->apps)))); $c->writeln(); switch ($cmd) { case 'cleanup': case 'commit': case 'compendium': case 'merge': $script->$cmd($cmd_options[0]); break; case 'commit-help': $script->commit($cmd_options[0], true); break; case 'extract': $script->xtract($cmd_options[0]); break; case 'init': $script->init($cmd_options[0]); $c->writeln(); $script->merge($cmd_options[0]); break; case 'make': $script->cleanup($cmd_options[0], true); $c->writeln(); $script->make($cmd_options[0]); break; case 'make-help': $script->make_help($cmd_options[0]); break; case 'update': $script->xtract($cmd_options[0]); $c->writeln(); $script->merge($cmd_options[0]); break; case 'update-help': $script->update_help($cmd_options[0]); break; case 'status': $script->merge($cmd_options[0]); break; default: $c->message(sprintf('Unknown command: %s', $cmd), 'cli.error'); $c->writeln(); $script->usage(); $script->footer(); } $script->footer(); tmpjWNuGb/horde-5.1.5/bin/horde-remove-user-data0000755000175000017500000000266312233761315021341 0ustar mathieumathieu#!/usr/bin/env php * @category Horde * @copyright 2013 Horde LLC * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ $baseFile = __DIR__ . '/../lib/Application.php'; if (file_exists($baseFile)) { require_once $baseFile; } else { require_once 'PEAR/Config.php'; require_once PEAR_Config::singleton() ->get('horde_dir', null, 'pear.horde.org') . '/lib/Application.php'; } Horde_Registry::appInit('horde', array( 'authentication' => 'none', 'cli' => true, 'user_admin' => true )); $cli->message('Horde directory: ' . realpath(HORDE_BASE), 'cli.message'); do { $user = $cli->prompt('Username:'); } while (!strlen($user)); $app = $cli->prompt('Application to remove data from (blank for all apps):'); if (!strlen($app)) { $app = null; } $cli->writeln(); if (!$cli->prompt($cli->red('Are you sure you want to remove user data?'), array('y' => 'Yes', 'n' => 'No'), 'n') == 'y') { exit(0); } try { $registry->removeUserData($user, $app); $cli->message('Data removed.', 'cli.success'); } catch (Horde_Exception $e) { $cli->fatal($e->getMessage()); } tmpjWNuGb/horde-5.1.5/bin/horde-crond0000755000175000017500000000222012233761315017253 0ustar mathieumathieu#!/usr/bin/env php '0,5,10,15,20 * * * *' ); // End Configuration $baseFile = __DIR__ . '/../lib/Application.php'; if (file_exists($baseFile)) { require_once $baseFile; } else { require_once 'PEAR/Config.php'; require_once PEAR_Config::singleton() ->get('horde_dir', null, 'pear.horde.org') . '/lib/Application.php'; } Horde_Registry::appInit('horde', array('cli' => true)); // Get an instance of the cron scheduler. $daemon = Horde_Scheduler::factory('Cron'); // Add cron tasks. foreach ($cron_tasks as $key => $val) { $daemon->addTask($key, $val); } // Start the daemon going. $daemon->run(); tmpjWNuGb/horde-5.1.5/bin/horde-import-squirrelmail-prefs0000755000175000017500000003377312233761315023325 0ustar mathieumathieu#!/usr/bin/env php * @author Jan Schneider * @author Michael Slusarz * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ $baseFile = __DIR__ . '/../../lib/Application.php'; if (file_exists($baseFile)) { require_once $baseFile; } else { require_once 'PEAR/Config.php'; require_once PEAR_Config::singleton() ->get('horde_dir', null, 'pear.horde.org') . '/lib/Application.php'; } Horde_Registry::appInit('horde', array('cli' => true)); // Read command line parameters. if ($argc != 2) { SM_Horde_Convert::usage(); } if (stripos($argv[1], 'file:') === 0) { $ob = new SM_Horde_Convert_File(substr($argv[1], 5)); } elseif (stripos($argv[1], 'sql:') === 0) { $params = json_decode(substr($argv[1], 4)); $db = $injector->getInstance('Horde_Db')->createDb($params); $ob = new SM_Horde_Convert_Sql($db); } else { SM_Horde_Convert::usage(); } $ob->convert(); class SM_Horde_Convert { /** * Print usage and exit. */ static public function usage() { global $cli; $cli->message('Incorrect parameters.', 'cli.error'); $cli->writeln(); $cli->writeln('Usage: import_squirrelmail_prefs [data]'); $cli->writeln(); $cli->writeln('Data types:'); $cli->writeln($cli->indent('file:[filename]')); $cli->writeln($cli->indent($cli->indent('filename can be either a file or a directory'))); $cli->writeln(); $cli->writeln($cli->indent('sql:[DSN]')); $cli->writeln($cli->indent($cli->indent('DSN are json-encoded connection parameters to the database containing the "userprefs" table. Example:'))); $cli->writeln($cli->indent($cli->indent('{"adapter":"mysql","user":"root","password":"password","host":"localhost","database":"squirrelmail"}'))); exit; } /** */ public function convert() { } /** * Returns the horde pref value(s) that correspond with the given * squirrelmail pref. * * @return mixed Array of pref arrays ('name', 'scope', 'value'). * False if there is no horde pref equivalent, or the horde * default should be used. */ private function _translate($sm_pref_name, $sm_pref_value) { switch ($sm_pref_name) { case 'compose_new_win': return array(array('name' => 'compose_popup', 'scope' => 'imp', 'value' => $sm_pref_value)); case 'draft_folder': if ($sm_pref_value != '[ ' . _("Do not use Drafts") . ' ]') { return array(array('name' => 'drafts_folder', 'scope' => 'imp', 'value' => $sm_pref_value)); } break; case 'email_address': return array(array('name' => 'from_addr', 'scope' => 'horde', 'value' => $sm_pref_value)); case 'full_name': return array(array('name' => 'fullname', 'scope' => 'horde', 'value' => $sm_pref_value)); case 'hour_format': return array(array('name' => 'twentyFour', 'scope' => 'horde', 'value' => ($sm_pref_value == 1))); case 'internal_date_sort': if ($sm_pref_value == 1) { return array(array('name' => 'sortby', 'scope' => 'imp', 'value' => '1')); } break; case 'language': return array(array('name' => 'language', 'scope' => 'horde', 'value' => $sm_pref_value)); case 'left_refresh': return array(array('name' => 'menu_refresh_time', 'scope' => 'horde', 'value' => $sm_pref_value)); case 'left_size': return array(array('name' => 'sidebar_width', 'scope' => 'horde', 'value' => $sm_pref_value)); case 'mdn_user_support': $value = 'ask'; if ($sm_pref_value == 0) { $value = 'never'; } return array(array('name' => 'disposition_request_read', 'scope' => 'imp', 'value' => $value)); case 'prefix_sig': return array(array('name' => 'sig_dashes', 'scope' => 'imp', 'value' => $sm_pref_value)); case 'reply_citation_style': switch ($sm_pref_value) { case 'none': return array(array('name' => 'attrib_text', 'scope' => 'imp', 'value' => '')); case 'author_said': return array(array('name' => 'attrib_text', 'scope' => 'imp', 'value' => '%p wrote')); case 'date_time_author': return array(array('name' => 'attrib_text', 'scope' => 'imp', 'value' => 'On %c, %p wrote')); } break; case 'reply_to': return array(array('name' => 'replyto_addr', 'scope' => 'imp', 'value' => $sm_pref_value)); case 'sent_folder': if ($sm_pref_value == '[ ' . _("Do not use Sent") . ' ]') { return array(array('name' => 'save_sent_mail', 'scope' => 'imp', 'value' => '0')); } return array(array('name' => 'save_sent_mail', 'scope' => 'imp', 'value' => '1'), array('name' => 'sent_mail_folder', 'scope' => 'imp', 'value' => $sm_pref_value)); case 'show_num': return array(array('name' => 'max_msgs', 'scope' => 'imp', 'value' => $sm_pref_value)); case 'show_xmailer_default': if ($sm_pref_value == 1) { $GLOBALS['registry']->pushApp('imp'); $value = "X-Mailer\n" . $GLOBALS['prefs']->getValue('mail_hdr'); $GLOBALS['registry']->popApp(); return array(array('name' => 'mail_hdr', 'scope' => 'imp', 'value' => trim($value))); } break; case 'sig_first': return array(array('name' => 'sig_first', 'scope' => 'imp', 'value' => $sm_pref_value)); case 'signature': return array(array('name' => 'signature', 'scope' => 'imp', 'value' => $sm_pref_value)); case 'sort_by_ref': if ($sm_pref_value == 1) { return array(array('name' => 'sortby', 'scope' => 'imp', 'value' => '161')); } break; case 'timezone': return array(array('name' => 'timezone', 'scope' => 'horde', 'value' => $sm_pref_value)); case 'trash_folder': if ($sm_pref_value == '[ ' . _("Do not use Trash") . ' ]') { return array(array('name' => 'use_trash', 'scope' => 'imp', 'value' => '0')); } return array(array('name' => 'use_trash', 'scope' => 'imp', 'value' => '1'), array('name' => 'trash_folder', 'scope' => 'imp', 'value' => $sm_pref_value)); case 'unseen_notify': if ($sm_pref_value == 2) { return array(array('name' => 'nav_poll_all', 'scope' => 'imp', 'value' => false)); } else if ($sm_pref_value == 3) { return array(array('name' => 'nav_poll_all', 'scope' => 'imp', 'value' => true)); } break; case 'use_signature': if ($sm_pref_value == 0) { return array(array('name' => 'signature', 'scope' => 'imp', 'value' => '')); } break; } // The rest of the SquirrelMail options do not translate // Default to no conversion. return false; } /** */ private function _savePrefs($user, $basename, $prefs_cache) { global $prefs, $registry; // Load default SquirrelMail signature $prefs_cache['signature'] = $this->_getSignature($basename); // Loop through the SquirrelMail prefs and translate them to Horde // prefs. foreach ($prefs_cache as $key => $val) { $horde_pref = $this->_translate($key, $val); if (!$horde_pref) { continue; } foreach ($horde_pref as $pref) { $pushed = $registry->pushApp($pref['scope']); $prefs->setValue($pref['name'], $pref['value']); if ($pushed) { $registry->popApp(); } } } // Import identities if (isset($prefs_cache['identities']) && ($prefs_cache['identities'] > 1)) { $identity = $GLOBALS['injector']->getInstance('Horde_Core_Factory_Identity')->create($user, 'imp'); // Intentionally off-by-one for ($i = 1; $i < $prefs_cache['identities']; $i++) { $new_identity = array('id' => 'Identity #' . ($i + 1), 'fullname' => $prefs_cache['full_name' . $i], 'replyto_addr' => $prefs_cache['reply_to' . $i], 'from_addr' => $prefs_cache['email_address' . $i], 'signature' => $this->_getSignature($basename, $i)); if (isset($prefs_cache['prefix_sig'])) { $new_identity['sig_dashes'] = $prefs_cache['prefix_sig']; } if (isset($prefs_cache['sig_first'])) { $new_identity['sig_first'] = $prefs_cache['sig_first']; } if (isset($prefs_cache['sent_folder'])) { if ($prefs_cache['sent_folder'] == '[ ' . _("Do not use Sent") . ' ]') { $new_identity['save_sent_mail'] = 0; } else { $new_identity['save_sent_mail'] = 1; } } $identity->add($new_identity); } $identity->save(); } } /** */ private function _getSignature() { return ''; } } class SM_Horde_Convert_File extends SM_Horde_Convert { private $_files; /** */ public function __construct($data) { // Get list of SquirrelMail pref files $this->_files = is_dir($data) ? glob(rtrim($data, '/') . "/*.pref") : array($data); } /** */ public function convert() { // Loop through SquirrelMail pref files foreach ($this->_files as $file) { if (!($handle = fopen($file, 'r'))) { continue; } // Set current user $user = substr(basename($file), 0, -5); $GLOBALS['registry']->setAuth($user, array()); $GLOBALS['cli']->message('Importing ' . $user . '\'s preferences'); // Reset user prefs $prefs = $GLOBALS['injector']->getInstance('Horde_Core_Factory_Prefs')->create('horde', array( 'cache' => false, 'user' => $user )); $prefs_cache = array(); // Read pref file, one line at a time while (!feof($handle)) { $buffer = fgets($handle); if (empty($buffer)) { continue; } /** * BEGIN: Code from squirrelmail to parse pref (GPL) */ $pref = trim($buffer); $equalsAt = strpos($pref, '='); if ($equalsAt > 0) { $key = substr($pref, 0, $equalsAt); $value = substr($pref, $equalsAt + 1); /* this is to 'rescue' old-style highlighting rules. */ if (substr($key, 0, 9) == 'highlight') { $key = 'highlight' . $highlight_num++; } if ($value != '') { $prefs_cache[$key] = $value; } } /** * END: Code from squirrelmail to parse pref (GPL) */ } fclose($handle); $this->_savePrefs($user, substr($file, 0, -5), $prefs_cache); } } /** */ private function _getSignature($basename, $number = 'g') { $sigfile = $basename . '.si' . $number; return file_exists($sigfile) ? file_get_contents($sigfile) : ''; } } class SM_Horde_Convert_Sql extends SM_Horde_Convert { private $_cache; private $_db; /** */ public function __construct($db) { $this->_db = $db; } /** */ public function convert() { // Loop through SquirrelMail address books. $users = $this->_db->select('SELECT user, prefkey, prefval FROM userprefs ORDER BY user'); $user = null; $prefs_cache = array(); foreach ($users as $row) { if (is_null($user)) { $user = $row['user']; } if ($row['user'] != $user) { $this->_importPrefs($user, $prefs_cache); $prefs_cache = array(); $user = $row['user']; } $prefs_cache[$row['prefkey']] = $row['prefval']; } $this->_importPrefs($user, $prefs_cache); } /** */ private function _importPrefs($user, $prefs_cache) { global $cli, $conf, $injector, $registry; $registry->setAuth($user, array()); $cli->message('Importing ' . $user . '\'s preferences'); $prefs = $injector->getInstance('Horde_Core_Factory_Prefs')->create('horde', array( 'cache' => false, 'user' => $user )); $this->_cache = $prefs_cache; $this->_savePrefs($user, null, $prefs_cache); } /** */ private function _getSignature($basename, $number = 'nature') { $key = '___sig' . $number . '___'; return isset($this->_cache[$key]) ? $this->_cache[$key] : ''; } } tmpjWNuGb/horde-5.1.5/bin/horde-clear-cache0000755000175000017500000000307012233761315020301 0ustar mathieumathieu#!/usr/bin/env php * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ $baseFile = __DIR__ . '/../lib/Application.php'; if (file_exists($baseFile)) { require_once $baseFile; } else { require_once 'PEAR/Config.php'; require_once PEAR_Config::singleton() ->get('horde_dir', null, 'pear.horde.org') . '/lib/Application.php'; } Horde_Registry::appInit('horde', array( 'authentication' => 'none', 'cli' => true )); try { $cache = $injector->getInstance('Horde_Cache'); } catch (Exception $e) { $cli->fatal($e); } $parser = new Horde_Argv_Parser(); $parser->addOption('-f', array( 'action' => 'store_true', 'help' => 'Force cleaning without prompt', 'dest' => 'force' )); list($values,) = $parser->parseArgs(); $clear = $values->force ? true : ($cli->prompt($cli->red('Are you sure you want to expire all cached data?'), array('y' => 'Yes', 'n' => 'No'), 'n') == 'y'); if ($clear) { try { $cache->clear(); $cli->message('Cache data cleared. NOTE: This does not indicate that cache data was successfully cleared on the backend, only that no error messages were returned.', 'cli.success'); } catch (Horde_Exception $e) { $cli->fatal($e); } } tmpjWNuGb/horde-5.1.5/bin/horde-check-logger0000755000175000017500000000223012233761315020501 0ustar mathieumathieu#!/usr/bin/env php * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ $baseFile = __DIR__ . '/../lib/Application.php'; if (file_exists($baseFile)) { require_once $baseFile; } else { require_once 'PEAR/Config.php'; require_once PEAR_Config::singleton() ->get('horde_dir', null, 'pear.horde.org') . '/lib/Application.php'; } Horde_Registry::appInit('horde', array( 'authentication' => 'none', 'cli' => true )); // Ensure Logger object was initialized. $injector->getInstance('Horde_Log_Logger'); if ($error = $injector->getInstance('Horde_Core_Factory_Logger')->error) { $cli->fatal($error); } else { $cli->message('Logger successfully loaded', 'cli.success'); Horde::logMessage('Test log message.'); $cli->message('Sent test log message.'); } tmpjWNuGb/horde-5.1.5/bin/horde-set-perms0000755000175000017500000000504412233761315020074 0ustar mathieumathieu#!/usr/bin/env php * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ $baseFile = __DIR__ . '/../lib/Application.php'; if (file_exists($baseFile)) { require_once $baseFile; } else { require_once 'PEAR/Config.php'; require_once PEAR_Config::singleton() ->get('horde_dir', null, 'pear.horde.org') . '/lib/Application.php'; } Horde_Registry::appInit('horde', array( 'authentication' => 'none', 'cli' => true )); $cli->message('Horde directory: ' . realpath(HORDE_BASE), 'cli.message'); $owner = $cli->prompt( 'Owner of Horde files?', null, 'root' ); $ownerpars = posix_getpwnam($owner); $owner = $ownerpars['uid']; $group = $cli->prompt( 'Group under which web server/PHP runs?', null, 'nobody' ); $grouppars = posix_getgrnam($group); $group = $grouppars['gid']; $cli->writeln(); if (!$cli->prompt($cli->red('Are you sure you want to alter permissions?'), array('y' => 'Yes', 'n' => 'No'), 'n') == 'y') { exit(0); } $it = new RecursiveIteratorIterator( new RecursiveDirectoryIterator(realpath(HORDE_BASE)), RecursiveIteratorIterator::SELF_FIRST); foreach ($it as $key => $val) { if ($val->getFilename() == '..' ) { continue; } if ($val->getOwner() != $owner) { $cli->message('Changing owner for ' . $key, 'cli.message'); chown($key, $owner); } if ($val->getGroup() != $group) { $cli->message('Changing group for ' . $key, 'cli.message'); chgrp($key, $group); } $octal_perms = substr(sprintf('%o', $val->getPerms()), -4); if ($val->isDir()) { if (basename($key) == 'static') { if ($octal_perms != '0770') { $cli->message('Changing permissions for ' . $key, 'cli.message'); chmod($key, 0770); } } elseif ($octal_perms != '0750') { $cli->message('Changing permissions for ' . $key, 'cli.message'); chmod($key, 0750); } } elseif ($val->isFile()) { if ($octal_perms != '0640') { $cli->message('Changing permissions for ' . $key, 'cli.message'); chmod($key, 0640); } } } tmpjWNuGb/horde-5.1.5/bin/horde-run-task0000755000175000017500000000424212233761315017720 0ustar mathieumathieu#!/usr/bin/env php * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ $baseFile = __DIR__ . '/../lib/Application.php'; if (file_exists($baseFile)) { require_once $baseFile; } else { require_once 'PEAR/Config.php'; require_once PEAR_Config::singleton() ->get('horde_dir', null, 'pear.horde.org') . '/lib/Application.php'; } Horde_Registry::appInit('horde', array('cli' => true)); $parser = new Horde_Argv_Parser(); $parser->addOption('-a', '--app', array( 'dest' => 'app', 'help' => 'Application name' )); $parser->addOption('-t', '--taskname', array( 'dest' => 'taskname', 'help' => 'Name of the file in the application\'s SystemTask/Task directory without the .php extension' )); $parser->addOption('-u', '--username', array( 'dest' => 'username', 'help' => 'Username' )); list($values,) = $parser->parseArgs(); if (!isset($values->app)) { $cli->fatal('Missing application name.'); } if (!isset($values->taskname)) { $cli->fatal('Missing taskname.'); } if (!isset($values->username)) { $cli->fatal('Missing username.'); } $registry->setAuth($values->username, array()); $registry->pushApp($values->app, array('check_perms' => false)); $class = $values->app . '_LoginTasks_SystemTask_' . $values->taskname; if (!class_exists($class)) { $class = $values->app . '_LoginTasks_Task_' . $values->taskname; if (!class_exists($class)) { $cli->fatal('Could not find task "' . $values->taskname . '".'); } } $ob = new $class(); if (($ob instanceof Horde_LoginTasks_SystemTask) && $ob->skip()) { $cli->message('System task was skipped.', 'cli.warning'); } else{ if ($ob instanceof Horde_Core_LoginTasks_SystemTask_Upgrade) { $ob->forceUpgrade(); } else { $ob->execute(); } $cli->message('Completed task.', 'cli.success'); } tmpjWNuGb/horde-5.1.5/bin/horde-pref-remove.php0000755000175000017500000000331512233761315021171 0ustar mathieumathieu#!@php_bin@ get('horde_dir', null, 'pear.horde.org') . '/lib/Application.php'; } Horde_Registry::appInit('horde', array( 'authentication' => 'none', 'cli' => true )); $scope = $cli->prompt('Enter preference scope:'); $name = $cli->prompt('Enter preference name:'); $user = $cli->prompt('Enter preference user:'); $prefs_ob = $injector->getInstance('Horde_Core_Factory_Prefs')->create($scope, array( 'user' => $user )); $value = $prefs_ob->getValue($name); if (is_null($value)) { $cli->message(sprintf('No preference "%s" found in scope "%s".', $name, $scope), 'cli.error'); } else { $cli->writeln(); $cli->writeln(sprintf('Name: %s', $name)); $cli->writeln(sprintf('Value: %s', $value)); $cli->writeln(); if ($cli->prompt($cli->red('Do you want to delete this preference?'), array('y' => 'Yes', 'n' => 'No'), 'n') == 'y') { $prefs_ob->remove($name); $cli->message($cli->green('Preference deleted.'), 'cli.success'); } } tmpjWNuGb/horde-5.1.5/bin/horde-db-migrate0000755000175000017500000001002412233761315020162 0ustar mathieumathieu#!/usr/bin/env php * @author Jan Schneider * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ $baseFile = __DIR__ . '/../lib/Application.php'; if (file_exists($baseFile)) { require_once $baseFile; } else { require_once 'PEAR/Config.php'; require_once PEAR_Config::singleton() ->get('horde_dir', null, 'pear.horde.org') . '/lib/Application.php'; } Horde_Registry::appInit('horde', array( 'authentication' => 'none', 'cli' => true )); // Parse command line arguments. $parser = new Horde_Argv_Parser( array( 'usage' => "%prog\n\t[--config=filename]\n\t[--debug]\n\t[(application|directory) [(up|down|version)]]", 'optionList' => array( new Horde_Argv_Option( '-c', '--config', array( //'action' => 'store_true', 'help' => 'Path to PEAR configuration file.' ) ), new Horde_Argv_Option( '-d', '--debug', array( 'action' => 'store_true', 'help' => 'Provide full debugging output.' ) ), ) ) ); list($options, $args) = $parser->parseArgs(); $migration = new Horde_Core_Db_Migration(__DIR__ . '/../..', $options['config']); if (empty($args[0])) { // Run all migrations. $apps = $migration->apps; $dirs = $migration->dirs; } else { // Run a specific migration. $app = $args[0]; if (($key = array_search($app, $migration->apps)) !== false) { $dir = $migration->dirs[$key]; } elseif (($key = array_search($app, $migration->dirs)) !== false) { $dir = $app; $app = $migration->apps[$key]; } else { $cli->fatal( sprintf( '%s is neither a configured Horde application nor a migration directory Supported applications: %s Supported directories: %s', $app, join("\n ", $migration->apps), join("\n ", $migration->dirs) ) ); } $dirs = array($dir); $apps = array($app); } $action = 'up'; if (!empty($args[1])) { switch ($args[1]) { case 'up': case 'down': $action = $args[1]; break; default: $action = 'migrate'; $targetVersion = $args[1]; break; } } // Run $db = $injector->getInstance('Horde_Db_Adapter'); if (!empty($options['debug'])) { $logger = new Horde_Log_Logger(new Horde_Log_Handler_Stream(STDOUT)); $db->setLogger($logger); } switch ($action) { case 'up': $cli->message('Migrating DB up.'); break; case 'down': $cli->message('Migrating DB down.'); break; case 'migrate': $cli->message('Migrating DB to schema version ' . $targetVersion . '.'); break; } $logger = new Horde_Log_Logger( new Horde_Log_Handler_Stream( STDOUT, null, new Horde_Log_Formatter_Simple('%message%' . PHP_EOL))); foreach ($apps as $app) { $migrator = $migration->getMigrator($app, $logger); $cli->message("Current $app schema version: " . $migrator->getCurrentVersion()); try { switch ($action) { case 'up': $migrator->up(); break; case 'down': $migrator->down(); break; case 'migrate': $migrator->migrate($targetVersion); break; } } catch (Exception $e) { echo $e->getMessage() . "\n"; continue; } $cli->message("Ending $app schema version: " . $migrator->getCurrentVersion()); } tmpjWNuGb/horde-5.1.5/bin/horde-sessions-gc0000755000175000017500000000255112233761315020412 0ustar mathieumathieu#!/usr/bin/env php * @category Horde * @copyrigth 2013 Horde LLC * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ $baseFile = __DIR__ . '/../lib/Application.php'; if (file_exists($baseFile)) { require_once $baseFile; } else { require_once 'PEAR/Config.php'; require_once PEAR_Config::singleton() ->get('horde_dir', null, 'pear.horde.org') . '/lib/Application.php'; } Horde_Registry::appInit('horde', array( 'authentication' => 'none', 'cli' => true )); $parser = new Horde_Argv_Parser(); $parser->addOption('-l', '--lifetime', array( 'dest' => 'lifetime', 'help' => 'Maximum lifetime of session (in seconds)', 'type' => 'int' )); list($values,) = $parser->parseArgs(); try { $sh = $injector->createInstance('Horde_SessionHandler'); } catch (Exception $e) { $cli->fatal($e); } $lifetime = is_null($values->lifetime) ? ini_get('session.gc_maxlifetime') : $values->lifetime; $sh->gc($lifetime); $cli->message('Session garbage collection performed.', 'cli.success'); tmpjWNuGb/horde-5.1.5/bin/horde-active-sessions0000755000175000017500000000322212233761315021270 0ustar mathieumathieu#!/usr/bin/env php * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ $baseFile = __DIR__ . '/../lib/Application.php'; if (file_exists($baseFile)) { require_once $baseFile; } else { require_once 'PEAR/Config.php'; require_once PEAR_Config::singleton() ->get('horde_dir', null, 'pear.horde.org') . '/lib/Application.php'; } Horde_Registry::appInit('horde', array( 'authentication' => 'none', 'cli' => true )); $sessionHandler = $GLOBALS['injector']->createInstance('Horde_SessionHandler'); try { $sessions = $sessionHandler->getSessionsInfo(); } catch (Horde_SessionHandler_Exception $e) { $cli->fatal('Session counting is not supported with the current session handler.'); } if (($argc < 2) || (($argv[1] != '-l') && ($argv[1] != '-ll'))) { $cli->writeln(count($sessions)); } else { foreach ($sessions as $data) { if ($argv[1] == '-ll') { $cli->writeln($data['userid'] . ' [' . date('r', $data['timestamp']) . ']'); } else { $cli->writeln($data['userid']); } } $cli->writeln($cli->green('Total Sessions: ' . count($sessions))); } tmpjWNuGb/horde-5.1.5/bin/horde-themes0000755000175000017500000000345612233761315017447 0ustar mathieumathieu#!/usr/bin/env php * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ $baseFile = __DIR__ . '/../lib/Application.php'; if (file_exists($baseFile)) { require_once $baseFile; } else { require_once 'PEAR/Config.php'; require_once PEAR_Config::singleton() ->get('horde_dir', null, 'pear.horde.org') . '/lib/Application.php'; } Horde_Registry::appInit('horde', array( 'authentication' => 'none', 'cli' => true )); $parser = new Horde_Argv_Parser(); $parser->addOptions('--expirecache', array( 'action' => 'store_true', 'help' => 'Expire all cache entries' )); list($values,) = $parser->parseArgs(); if ($values->expirecache) { if ($cli->prompt($cli->red('Are you sure you want to expire all cached themes?'), array('y' => 'Yes', 'n' => 'No'), 'n') == 'y') { $tcache = $injector->getInstance('Horde_Core_Factory_ThemesCache'); $tlist = array_keys(Horde_Themes::themeList()); $cli->writeln(); foreach ($registry->listAllApps() as $app) { foreach ($tlist as $theme) { try { if ($tcache->expireCache($app, $theme)) { $cli->message('Cache entry expired [APP: ' . $app . '; THEME: ' . $theme . ']'); } } catch (Horde_Exception $e) { $cli->message('Could not expire cache entry [APP: ' . $app . '; THEME: ' . $theme . ']', 'cli.warning'); } } } } exit; } tmpjWNuGb/horde-5.1.5/bin/horde-memcache-stats0000755000175000017500000001031212233761315021045 0ustar mathieumathieu#!/usr/bin/env php * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ $baseFile = __DIR__ . '/../lib/Application.php'; if (file_exists($baseFile)) { require_once $baseFile; } else { require_once 'PEAR/Config.php'; require_once PEAR_Config::singleton() ->get('horde_dir', null, 'pear.horde.org') . '/lib/Application.php'; } Horde_Registry::appInit('horde', array( 'authentication' => 'none', 'cli' => true )); $hashtable = $injector->getInstance('Horde_HashTable'); if (!($hashtable instanceof Horde_HashTable_Memcache)) { $cli->fatal('Memcache HashTable driver not enabled.'); } $parser = new Horde_Argv_Parser(); $parser->addOption('-a', '--all', array( 'action' => 'store_true', 'dest' => 'all', 'help' => 'Show all servers' )); $parser->addOption('--flush', array( 'action' => 'store_true', 'dest' => 'flush', 'help' => 'Flush all data' )); $parser->addOptions('-l', '--lookup', array( 'dest' => 'lookup', 'help' => 'Key to lookup' )); $parser->addOptions('-r', '--raw', array( 'action' => 'store_true', 'dest' => 'raw', 'help' => 'Display raw data' )); $parser->addOptions('-s', '--summary', array( 'action' => 'store_true', 'dest' => 'summary', 'help' => 'Display summary' )); list($values,) = $parser->parseArgs(); if ($values->flush) { if ($cli->prompt($cli->red('Are you sure you want to flush all data?'), array('y' => 'Yes', 'n' => 'No'), 'n') == 'y') { $hashtable->clear(); $cli->writeln($cli->green('Done.')); } exit; } if ($values->lookup) { $data = $hashtable->get($values->lookup); $cli->writeln(empty($data) ? '[Key not found.]' : print_r($data, true)); exit; } $stats = $hashtable->stats(); if ($values->raw) { $cli->writeln(print_r($stats, true)); } elseif (!$values->summary) { $values->all = true; } if ($values->all || $values->summary) { if ($values->summary) { $total = array(); $total_keys = array('bytes', 'limit_maxbytes', 'curr_items', 'total_items', 'get_hits', 'get_misses', 'curr_connections', 'bytes_read', 'bytes_written'); foreach ($total_keys as $key) { $total[$key] = 0; } } $i = count($stats); $s_count = 0; foreach ($stats as $key => $val) { if ($val === false) { $cli->message('Could not connect to server: ' . $key, 'cli.warning'); continue; } ++$s_count; if ($values->summary) { foreach ($total_keys as $k) { $total[$k] += $val[$k]; } } if ($values->all) { $cli->writeln($cli->green('Server: ' . $key . ' (Version: ' . $val['version'] . ' - ' . $val['threads'] . ' thread(s))')); _outputInfo($val, $cli); if (--$i || $values->summary) { $cli->writeln(); } } } if ($values->summary) { $cli->writeln($cli->green('Memcache pool (' . $s_count . ' active server(s))')); if ($s_count) { _outputInfo($total, $cli); } } } function _outputInfo($val, $cli) { $cli->writeln($cli->indent('Size: ' . sprintf("%0.2f", $val['bytes'] / 1048576) . ' MB (Max: ' . sprintf("%0.2f", ($val['limit_maxbytes']) / 1048576) . ' MB - ' . ((!empty($val['limit_maxbytes']) ? round(($val['bytes'] / $val['limit_maxbytes']) * 100, 1) : 'N/A')) . '% used)')); $cli->writeln($cli->indent('Items: ' . $val['curr_items'] . ' (Total: ' . $val['total_items'] . ')')); $cli->writeln($cli->indent('Cache Ratio: ' . $val['get_hits'] . ' hits, ' . $val['get_misses'] . ' misses')); $cli->writeln($cli->indent('Connections: ' . $val['curr_connections'])); $cli->writeln($cli->indent('Traffic: ' . sprintf("%0.2f", $val['bytes_read'] / 1048576) . ' MB in, ' . sprintf("%0.2f", $val['bytes_written'] / 1048576) . ' MB out')); } tmpjWNuGb/horde-5.1.5/bin/horde-alarms0000755000175000017500000000146712233761315017441 0ustar mathieumathieu#!/usr/bin/env php * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ $baseFile = __DIR__ . '/../lib/Application.php'; if (file_exists($baseFile)) { require_once $baseFile; } else { require_once 'PEAR/Config.php'; require_once PEAR_Config::singleton() ->get('horde_dir', null, 'pear.horde.org') . '/lib/Application.php'; } Horde_Registry::appInit('horde', array('cli' => true, 'user_admin' => true)); $injector->getInstance('Horde_Alarm')->notify(null, true, false, array('notify', 'desktop')); tmpjWNuGb/horde-5.1.5/bin/horde-sql-shell.php0000755000175000017500000000232412233761315020645 0ustar mathieumathieu#!@php_bin@ * @category Horde * @copyright 2007-2013 Horde LLC * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ $baseFile = __DIR__ . '/../lib/Application.php'; if (file_exists($baseFile)) { require_once $baseFile; } else { require_once 'PEAR/Config.php'; require_once PEAR_Config::singleton() ->get('horde_dir', null, 'pear.horde.org') . '/lib/Application.php'; } Horde_Registry::appInit('horde', array( 'authentication' => 'none', 'cli' => true )); $dbh = $injector->getInstance('Horde_Db_Adapter'); // read sql file for statements to run $statements = new Horde_Db_StatementParser($_SERVER['argv'][1]); foreach ($statements as $stmt) { $cli->writeln('Running:'); $cli->writeln(' ' . preg_replace('/\s+/', ' ', $stmt)); $dbh->execute($stmt); $cli->writeln(' ...done.'); } tmpjWNuGb/horde-5.1.5/bin/horde-queue-run-tasks0000755000175000017500000000166212233761315021230 0ustar mathieumathieu#!/usr/bin/env php * @category Horde * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @package Horde */ $baseFile = __DIR__ . '/../lib/Application.php'; if (file_exists($baseFile)) { require_once $baseFile; } else { require_once 'PEAR/Config.php'; require_once PEAR_Config::singleton() ->get('horde_dir', null, 'pear.horde.org') . '/lib/Application.php'; } $queue = empty($argv[1]) ? 'default' : $argv[1]; Horde_Registry::appInit('horde', array('cli' => true, 'user_admin' => true)); $db = $injector->getInstance('Horde_Db_Adapter'); $storage = new Horde_Queue_Storage_Db($db, $queue); $runner = new Horde_Queue_Runner_RequestShutdown($storage); tmpjWNuGb/horde-5.1.5/test.php0000644000175000017500000001722012233761325016050 0ustar mathieumathieu * @author Chuck Hagenbuch * @author Michael Slusarz * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ /* Function to output fatal error message. */ function _hordeTestError($msg) { exit('ERROR

    ' . htmlspecialchars($msg) . '

    '); } /* If we can't find the Autoloader, then the framework is not setup. A user * must at least correctly install the framework. */ ini_set('include_path', __DIR__ . '/lib' . PATH_SEPARATOR . ini_get('include_path')); if (file_exists(__DIR__ . '/config/horde.local.php')) { include __DIR__ . '/config/horde.local.php'; } if (!@include_once 'Horde/Autoloader.php') { _hordeTestError(sprintf('Could not find Horde\'s framework libraries in the following path(s): %s. Please read horde/docs/INSTALL for information on how to install these libraries.', get_include_path())); } /* Similarly, registry.php needs to exist. */ if (!file_exists(__DIR__ . '/config/registry.php')) { _hordeTestError('Could not find horde/config/registry.php. Please make sure this file exists. Read horde/docs/INSTALL for further information.'); } require_once __DIR__ . '/lib/Application.php'; try { Horde_Registry::appInit('horde', array( 'authentication' => 'none', 'test' => true )); $init_exception = null; } catch (Exception $e) { define('HORDE_TEMPLATES', __DIR__ . '/templates'); $init_exception = $e; } if (!empty($conf['testdisable'])) { _hordeTestError('Horde test scripts have been disabled in the local configuration. To enable, change the \'testdisable\' setting in horde/config/conf.php to false.'); } /* We should have loaded the String class, from the Horde_Util package. If it * isn't defined, then we're not finding some critical libraries. */ if (!class_exists('Horde_String')) { _hordeTestError('Required Horde libraries were not found. If PHP\'s error_reporting setting is high enough and display_errors is on, there should be error messages printed above that may help you in debugging the problem. If you are simply missing these files, then you need to install the framework module.'); } /* Initialize the Horde_Test:: class. */ if (!class_exists('Horde_Test')) { /* Try and provide enough information to debug the missing file. */ _hordeTestError('Unable to find the Horde_Test library. Your Horde installation may be missing critical files, or PHP may not have sufficient permissions to include files. There may be error messages printed above this message that will help you in debugging the problem.'); } /* Load the application. */ $app = Horde_Util::getFormData('app', 'horde'); $app_name = $registry->get('name', $app); $app_version = $registry->getVersion($app); /* If we've gotten this far, we should have found enough of Horde to run * tests. Create the testing object. */ if ($app != 'horde') { try { $registry->pushApp($app, array('check_perms' => false)); } catch (Exception $e) { _hordeTestError($e->getMessage()); } } $classname = ucfirst($app) . '_Test'; if (!class_exists($classname)) { _hordeTestError('No tests found for ' . ucfirst($app) . ' [' . $app_name . '].'); } $test_ob = new $classname(); /* Register a session. */ if ($session && !$session->exists('horde', 'test_count')) { $session->set('horde', 'test_count', 0); } /* Template location. */ $test_templates = HORDE_TEMPLATES . '/test'; /* Self URL. */ $url = Horde::url('test.php', false, array('app' => 'horde')); $self_url = $url->copy()->add('app', $app); /* Handle special modes. */ switch (Horde_Util::getGet('mode')) { case 'extensions': echo ''; $ext_get = Horde_Util::getGet('ext'); require $test_templates . '/extensions.inc'; exit; case 'phpinfo': echo ''; echo '<< Back to test.php'; phpinfo(); exit; case 'unregister': echo ''; $session->remove('horde', 'test_count'); ?> The test session has been unregistered.
    Go back to the test.php page.
    pearModuleCheck(); Horde::startBuffer(); require $test_templates . '/header.inc'; require $test_templates . '/version.inc'; if ($app == 'horde') { ?>

    Horde Applications

      listAllApps(), array($app)); sort($app_list); foreach ($app_list as $val) { echo '
    • ' . ucfirst($val); if ($name = $registry->get('name', $val)) { echo ' [' . $name . ']'; } echo ': ' . $registry->getVersion($val); if (file_exists($registry->get('fileroot', $val) . '/lib/Test.php')) { echo ' (run tests)
    • '; } echo "\n"; } } catch (Exception $e) { $init_exception = $e; } } if ($init_exception) { echo '
    • Horde is not correctly configured so no application information can be displayed. Please follow the instructions in horde/docs/INSTALL and ensure horde/config/conf.php and horde/config/registry.php are correctly configured.
    • ' . '
    • Error: ' . $e->getMessage() . '
    • '; } ?>
    requiredAppCheck()) { ?>

    Other Horde Applications

    getPhpVersionInformation(); require $test_templates . '/php_version.inc'; if ($module_output = $test_ob->phpModuleCheck()) { ?>

    PHP Module Capabilities

    phpSettingCheck()) { ?>

    Miscellaneous PHP Settings

    requiredFileCheck()) { ?>

    Required Configuration Files

    PHP Sessions

    • Session counter: get('horde', 'test_count'); echo ++$tc; $session->set('horde', 'test_count', $tc); ?> [refresh the page to increment the counter]
    • To unregister the session: click here
    • The PHP session test is disabled until Horde is correctly configured.

    PEAR

    appTests(); require $test_templates . '/footer.inc'; echo Horde::endBuffer(); tmpjWNuGb/horde-5.1.5/admin/0000755000175000017500000000000012262230550015437 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/admin/cmdshell.php0000644000175000017500000000233212233761315017751 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ require_once __DIR__ . '/../lib/Application.php'; Horde_Registry::appInit('horde', array( 'permission' => array('horde:administration:cmdshell') )); $title = _("Command Shell"); $view = new Horde_View(array( 'templatePath' => HORDE_TEMPLATES . '/admin' )); $view->addHelper('Horde_Core_View_Helper_Help'); $view->addHelper('Text'); $view->action = Horde::url('admin/cmdshell.php'); $view->command = trim(Horde_Util::getFormData('cmd')); $view->title = $title; if ($view->command) { $cmds = explode("\n", $view->command); $out = array(); foreach ($cmds as $cmd) { $cmd = trim($cmd); if (strlen($cmd)) { $out[] = shell_exec($cmd); } } $view->out = $out; } $page_output->header(array( 'title' => $title )); require HORDE_TEMPLATES . '/admin/menu.inc'; echo $view->render('cmdshell'); $page_output->footer(); tmpjWNuGb/horde-5.1.5/admin/user.php0000644000175000017500000002543312233761315017143 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ require_once __DIR__ . '/../lib/Application.php'; Horde_Registry::appInit('horde', array( 'permission' => array('horde:administration:users') )); $auth = $injector->getInstance('Horde_Core_Factory_Auth')->create(); $vars = $injector->getInstance('Horde_Variables'); if ($conf['signup']['allow'] && $conf['signup']['approve']) { $signup = $injector->getInstance('Horde_Core_Auth_Signup'); } $addForm = new Horde_Form($vars, _("Add a new user:"), 'adduser'); $addForm->setButtons(_("Add user"), _("Reset")); $addForm->addHidden('', 'form', 'text', true, true); /* Use hooks get any extra fields for new accounts. */ try { $extra = Horde::callHook('signup_getextra'); if (!empty($extra)) { if (!isset($extra['user_name'])) { $addForm->addVariable(_("Username"), 'user_name', 'text', true); } if (!isset($extra['password'])) { $addForm->addVariable(_("Password"), 'password', 'passwordconfirm', false, false, _("type the password twice to confirm")); } foreach ($extra as $field_name => $field) { $readonly = isset($field['readonly']) ? $field['readonly'] : null; $desc = isset($field['desc']) ? $field['desc'] : null; $field_params = isset($field['params']) ? $field['params'] : array(); $addForm->addVariable($field['label'], 'extra[' . $field_name . ']', $field['type'], $field['required'], $readonly, $desc, $field_params); } } } catch (Horde_Exception_HookNotSet $e) {} if (empty($extra)) { $addForm->addVariable(_("Username"), 'user_name', 'text', true); $addForm->addVariable(_("Password"), 'password', 'passwordconfirm', false, false, _("type the password twice to confirm")); } switch ($vars->form) { case 'add': $addForm->validate($vars); if ($addForm->isValid() && $vars->get('formname') == 'adduser') { $addForm->getInfo($vars, $info); if (empty($info['user_name']) && isset($info['extra']['user_name'])) { $info['user_name'] = $info['extra']['user_name']; } if (empty($info['password']) && isset($info['extra']['password'])) { $info['password'] = $info['extra']['password']; } if (empty($info['user_name'])) { $notification->push(_("You must specify the username to add."), 'horde.error'); } elseif ($auth->exists($info['user_name'])) { $notification->push(sprintf(_("The user \"%s\" already exists."), $info['user_name']), 'horde.error'); } else { $credentials = array('password' => $info['password']); if (isset($info['extra'])) { foreach ($info['extra'] as $field => $value) { $credentials[$field] = $value; } } try { $auth->addUser($info['user_name'], $credentials); } catch (Horde_Auth_Exception $e) { $notification->push(sprintf(_("There was a problem adding \"%s\" to the system: %s"), $info['user_name'], $e->getMessage()), 'horde.error'); break; } if (isset($info['extra'])) { try { Horde::callHook('signup_addextra', array($info['user_name'], $info['extra'])); } catch (Horde_Exception $e) { $notification->push(sprintf(_("Added \"%s\" to the system, but could not add additional signup information: %s."), $info['user_name'], $e->getMessage()), 'horde.warning'); } catch (Horde_Exception_HookNotSet $e) {} } if ($vars->removeQueuedSignup) { $signup->removeQueuedSignup($info['user_name']); } $notification->push(sprintf(_("Successfully added \"%s\" to the system."), $info['user_name']), 'horde.success'); $addForm->unsetVars($vars); } } break; case 'remove_f': $f_user_name = $vars->user_name; $remove_form = true; break; case 'remove': $f_user_name = $vars->user_name; $vars->remove('user_name'); if ($vars->submit == _("Cancel")) { break; } if (empty($f_user_name)) { $notification->push(_("You must specify a username to remove."), 'horde.message'); break; } try { $registry->removeUser($f_user_name); $notification->push(sprintf(_("Successfully removed \"%s\" from the system."), $f_user_name), 'horde.success'); } catch (Horde_Exception $e) { $notification->push(sprintf(_("There was a problem removing \"%s\" from the system: ") . $e->getMessage(), $f_user_name), 'horde.error'); } break; case 'clear_f': $f_user_name = $vars->user_name; $clear_form = true; break; case 'clear': $f_user_name = $vars->user_name; $vars->remove('user_name'); if ($vars->submit == _("Cancel")) { break; } if (empty($f_user_name)) { $notification->push(_("You must specify a username to clear out."), 'horde.message'); break; } try { $registry->removeUserData($f_user_name); $notification->push(sprintf(_("Successfully cleared data for user \"%s\" from the system."), $f_user_name), 'horde.success'); } catch (Horde_Exception $e) { $notification->push(sprintf(_("There was a problem clearing data for user \"%s\" from the system: ") . $e->getMessage(), $f_user_name), 'horde.error'); } break; case 'update_f': $f_user_name = $vars->user_name; $update_form = true; break; case 'update': $user_name_1 = Horde_Util::getPost('user_name'); $user_name_2 = Horde_Util::getPost('user_name2', $user_name_1); $fullname = Horde_Util::getPost('user_fullname'); $email = Horde_Util::getPost('user_email'); $vars->remove('user_name'); if ($auth->hasCapability('update')) { $user_pass_1 = Horde_Util::getPost('user_pass_1'); $user_pass_2 = Horde_Util::getPost('user_pass_2'); if (empty($user_name_1)) { $notification->push(_("You must specify the username to update."), 'horde.error'); } elseif (empty($user_pass_1) || empty($user_pass_2)) { // Don't update, but don't complain. } elseif ($user_pass_1 != $user_pass_2) { $notification->push(_("Passwords must match."), 'horde.error'); } else { try { $auth->updateUser($user_name_1, $user_name_2, array('password' => $user_pass_1)); } catch (Horde_Auth_Exception $e) { $notification->push(sprintf(_("There was a problem updating \"%s\": %s"), $user_name_1, $e->getMessage()), 'horde.error'); break; } } } if ($auth->hasCapability('lock')) { $user_locked = Horde_Util::getPost('user_locked'); /* only execute lock/unlock if it would result in a change */ if (($auth->isLocked($user_name_2)) && (!$user_locked)) { $auth->unlockUser($user_name_2); } elseif ((!$auth->isLocked($user_name_2)) && ($user_locked)) { $auth->lockUser($user_name_2); } } $identity = $injector->getInstance('Horde_Core_Factory_Identity')->create($user_name_1); $identity->setValue('fullname', $fullname); $identity->setValue('from_addr', $email); $identity->save(); $notification->push(sprintf(_("Successfully updated \"%s\""), $user_name_2), 'horde.success'); break; case 'approve_f': $thisSignup = $signup->getQueuedSignup($vars->user_name); $info = $thisSignup->getData(); $vars->set('password', array('original' => $info['password'], 'confirm' => $info['password'])); unset($info['password']); $vars->set('extra', $info); $vars->set('removeQueuedSignup', true); $addForm->addHidden('', 'removeQueuedSignup', 'boolean', true); break; case 'removequeued_f': $f_user_name = $vars->user_name; $removequeued_form = true; break; case 'removequeued': try { $signup->removeQueuedSignup($vars->user_name); $notification->push(sprintf(_("The signup request for \"%s\" has been removed."), $vars->user_name)); } catch (Horde_Exception $e) { $notification->push($e); } break; } $page_output->addScriptFile('stripe.js', 'horde'); if (isset($update_form) && $auth->hasCapability('list')) { $page_output->addScriptFile('userupdate.js', 'horde'); $page_output->addInlineJsVars(array( 'HordeAdminUserUpdate.pass_error' => _("Passwords must match.") )); } $page_output->header(array( 'title' => _("User Administration") )); require HORDE_TEMPLATES . '/admin/menu.inc'; if (isset($update_form) && $auth->hasCapability('list')) { $identity = $injector->getInstance('Horde_Core_Factory_Identity')->create($f_user_name); require HORDE_TEMPLATES . '/admin/user/update.inc'; } elseif (isset($remove_form) && $auth->hasCapability('list') && $auth->hasCapability('remove')) { require HORDE_TEMPLATES . '/admin/user/remove.inc'; } elseif (isset($clear_form)) { require HORDE_TEMPLATES . '/admin/user/clear.inc'; } elseif (isset($removequeued_form)) { require HORDE_TEMPLATES . '/admin/user/removequeued.inc'; } elseif ($auth->hasCapability('add')) { $vars->form = 'add'; $addForm->renderActive(new Horde_Form_Renderer(), $vars, Horde::selfUrl(), 'post'); if ($conf['signup']['allow'] && $conf['signup']['approve']) { require HORDE_TEMPLATES . '/admin/user/approve.inc'; } } else { require HORDE_TEMPLATES . '/admin/user/noadd.inc'; } if ($auth->hasCapability('list')) { /* If we aren't supplied with a page number, default to page 0. */ $page = $vars->get('page', 0); $search_pattern = $vars->get('search_pattern', ''); try { $users = $auth->listUsers(); /* Returns only users that match the specified pattern. */ $users = preg_grep('/' . $search_pattern . '/', $users); sort($users); $viewurl = Horde::url('admin/user.php')->add('search_pattern', $search_pattern); $numitem = count($users); $perpage = 20; $min = $page * $perpage; while ($min > $numitem) { $page--; $min = $page * $perpage; } $max = $min + $perpage; $start = ($page * $perpage) + 1; $end = min($numitem, $start + $perpage - 1); require HORDE_TEMPLATES . '/admin/user/list.inc'; } catch (Exception $e) { require HORDE_TEMPLATES . '/admin/user/listfail.inc'; } } else { require HORDE_TEMPLATES . '/admin/user/nolist.inc'; } $page_output->footer(); tmpjWNuGb/horde-5.1.5/admin/phpshell.php0000644000175000017500000000402112233761315017772 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ require_once __DIR__ . '/../lib/Application.php'; Horde_Registry::appInit('horde', array( 'permission' => array('horde:administration:phpshell') )); $vars = $injector->getInstance('Horde_Variables'); $apps_tmp = $registry->listApps(); $apps = array(); foreach ($apps_tmp as $app) { // Make sure the app is installed. if (!file_exists($registry->get('fileroot', $app))) { continue; } $apps[$app] = $registry->get('name', $app) . ' (' . $app . ')'; } asort($apps); $application = $vars->get('app', 'horde'); $command = trim($vars->php); $title = _("PHP Shell"); $view = new Horde_View(array( 'templatePath' => HORDE_TEMPLATES . '/admin' )); $view->addHelper('Horde_Core_View_Helper_Help'); $view->addHelper('Text'); $view->action = Horde::url('admin/phpshell.php'); $view->application = $application; $view->apps = $apps; $view->command = $command; $view->title = $title; if ($command) { $pushed = $registry->pushApp($application); $part = new Horde_Mime_Part(); $part->setContents($command); $part->setType('application/x-httpd-phps'); $part->buildMimeIds(); $pretty = $injector->getInstance('Horde_Core_Factory_MimeViewer')->create($part)->render('inline'); $view->pretty = $pretty[1]['data']; Horde::startBuffer(); try { eval($command); } catch (Exception $e) { echo $e; } $view->command_exec = Horde::endBuffer(); if ($pushed) { $registry->popApp(); } } $page_output->addScriptFile('stripe.js', 'horde'); $page_output->header(array( 'title' => $title )); require HORDE_TEMPLATES . '/admin/menu.inc'; echo $view->render('phpshell'); $page_output->footer(); tmpjWNuGb/horde-5.1.5/admin/sessions.php0000644000175000017500000000420512233761315020025 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ require_once __DIR__ . '/../lib/Application.php'; Horde_Registry::appInit('horde', array( 'permission' => array('horde:administration:sessions') )); $view = new Horde_View(array( 'templatePath' => HORDE_TEMPLATES . '/admin' )); $view->addHelper('Horde_Core_View_Helper_Image'); $view->addHelper('Text'); try { $resolver = $injector->getInstance('Net_DNS2_Resolver'); $s_info = array(); foreach ($session->sessionHandler->getSessionsInfo() as $id => $data) { $tmp = array( 'auth' => implode(', ', $data['apps']), 'browser' => $data['browser'], 'id' => $id, 'remotehost' => '[' . _("Unknown") . ']', 'timestamp' => date('r', $data['timestamp']), 'userid' => $data['userid'] ); if (!empty($data['remoteAddr'])) { $host = null; if ($resolver) { try { if ($resp = $resolver->query($data['remoteAddr'], 'PTR')) { $host = $resp->answer[0]->ptrdname; } } catch (Net_DNS2_Exception $e) {} } if (is_null($host)) { $host = @gethostbyaddr($data['remoteAddr']); } $tmp['remotehost'] = $host . ' [' . $data['remoteAddr'] . '] '; $tmp['remotehostimage'] = Horde_Core_Ui_FlagImage::generateFlagImageByHost($host); } $s_info[] = $tmp; } $view->session_info = $s_info; } catch (Horde_Exception $e) { $view->error = $e->getMessage(); } $page_output->addScriptFile('tables.js', 'horde'); $page_output->header(array( 'title' => _("Session Administration") )); require HORDE_TEMPLATES . '/admin/menu.inc'; echo $view->render('sessions'); $page_output->footer(); tmpjWNuGb/horde-5.1.5/admin/index.html0000644000175000017500000000000012233761315017430 0ustar mathieumathieutmpjWNuGb/horde-5.1.5/admin/signup_confirm.php0000644000175000017500000000566712233761315021216 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ require_once __DIR__ . '/../lib/base.php'; Horde_Registry::appInit('horde', array('authentication' => 'none')); $vars = $injector->getInstance('Horde_Variables'); // Make sure signups are enabled before proceeding $auth = $injector->getInstance('Horde_Core_Factory_Auth')->create(); if ($conf['signup']['allow'] !== true || !$auth->hasCapability('add')) { throw new Horde_Exception(_("User Registration has been disabled for this site.")); } try { $signup = $injector->getInstance('Horde_Core_Auth_Signup'); } catch (Horde_Exception $e) { Horde::logMessage($e, 'ERR'); throw new Horde_Exception(_("User Registration is not properly configured for this site.")); } // Verify hash. if (hash_hmac('sha1', $vars->u, $conf['secret_key']) != $vars->h) { throw new Horde_Exception(_("Invalid hash.")); } // Deny signup. if ($vars->a == 'deny') { $signup->removeQueuedSignup($vars->u); printf(_("The signup request for user \"%s\" has been removed."), $vars->u); exit; } if ($vars->a != 'approve') { throw new Horde_Exception(sprintf(_("Invalid action %s"), $vars->a)); } // Read and verify user data. $thisSignup = $signup->getQueuedSignup($vars->u); $info = $thisSignup->getData(); if (empty($info['user_name']) && isset($info['extra']['user_name'])) { $info['user_name'] = $info['extra']['user_name']; } if (empty($info['password']) && isset($info['extra']['password'])) { $info['password'] = $info['extra']['password']; } if (empty($info['user_name'])) { throw new Horde_Exception(_("No username specified.")); } if ($auth->exists($info['user_name'])) { throw new Horde_Exception(sprintf(_("The user \"%s\" already exists."), $info['user_name'])); } $credentials = array('password' => $info['password']); if (isset($info['extra'])) { foreach ($info['extra'] as $field => $value) { $credentials[$field] = $value; } } // Add user. try { $auth->addUser($info['user_name'], $credentials); } catch (Horde_Auth_Exception $e) { throw new Horde_Exception(sprintf(_("There was a problem adding \"%s\" to the system: %s"), $info['user_name'], $e->getMessage())); } if (isset($info['extra'])) { try { Horde::callHook('signup_addextra', array($info['user_name'], $info['extra'])); } catch (Horde_Exception $e) { throw new Horde_Exception(sprintf(_("Added \"%s\" to the system, but could not add additional signup information: %s."), $info['user_name'], $e->getMessage())); } catch (Horde_Exception_HookNotSet $e) {} } $signup->removeQueuedSignup($vars->u); echo sprintf(_("Successfully added \"%s\" to the system."), $info['user_name']); tmpjWNuGb/horde-5.1.5/admin/config/0000755000175000017500000000000012262230550016704 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/admin/config/diff.php0000644000175000017500000000573712233761315020347 0ustar mathieumathieu array('horde:administration:configuration') )); $vars = $injector->getInstance('Horde_Variables'); /* Set up the diff renderer. */ $render_type = $vars->get('render', 'inline'); $class = 'Horde_Text_Diff_Renderer_' . Horde_String::ucfirst($render_type); $renderer = new $class(); /** * Private function to render the differences for a specific app. */ function _getDiff($app) { global $registry, $renderer, $session; /* Read the existing configuration. */ $current_config = ''; $path = $registry->get('fileroot', $app) . '/config'; $current_config = @file_get_contents($path . '/conf.php'); /* Calculate the differences. */ $diff = new Horde_Text_Diff( 'auto', array(explode("\n", $current_config), explode("\n", $session->get('horde', 'config/' . $app))) ); $diff = $renderer->render($diff); return empty($diff) ? _("No change.") : $diff; } $diffs = array(); /* Only bother to do anything if there is any config. */ if ($config = $session->get('horde', 'config/')) { /* Set up the toggle button for inline/unified. */ $url = Horde::url('admin/config/diff.php')->add('render', ($render_type == 'inline') ? 'unified' : 'inline'); if ($app = $vars->app) { /* Handle a single app request. */ $toggle_renderer = Horde::link($url . '#' . $app) . (($render_type == 'inline') ? _("unified") : _("inline")) . ''; $diffs[] = array( 'app' => $app, 'diff' => ($render_type == 'inline') ? _getDiff($app) : htmlspecialchars(_getDiff($app)), 'toggle_renderer' => $toggle_renderer ); } else { /* List all the apps with generated configuration. */ ksort($config); foreach ($config as $app => $config) { $toggle_renderer = Horde::link($url . '#' . $app) . (($render_type == 'inline') ? _("unified") : _("inline")) . ''; $diffs[] = array( 'app' => $app, 'diff' => ($render_type == 'inline') ? _getDiff($app) : htmlspecialchars(_getDiff($app)), 'toggle_renderer' => $toggle_renderer ); } } } /* Set up the template. */ $view = new Horde_View(array( 'templatePath' => HORDE_TEMPLATES . '/admin/config' )); $view->diffs = $diffs; $page_output->topbar = $page_output->sidebar = false; $page_output->header(array( 'title' => _("Configuration Differences") )); echo $view->render('diff'); $page_output->footer(); tmpjWNuGb/horde-5.1.5/admin/config/scripts.php0000644000175000017500000000770312233761315021121 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ require_once __DIR__ . '/../../lib/Application.php'; Horde_Registry::appInit('horde', array( 'permission' => array('horde:administration:configuration') )); $filename = 'horde_configuration_upgrade.php'; $vars = $injector->getInstance('Horde_Variables'); /* Check if this is only a request to clean up. */ if ($vars->clean == 'tmp') { $tmp_dir = Horde::getTempDir(); $path = Horde_Util::realPath($tmp_dir . '/' . $filename); if (@unlink($tmp_dir . '/' . $filename)) { $notification->push(sprintf(_("Deleted configuration upgrade script \"%s\"."), $path), 'horde.success'); } else { $notification->push(sprintf(_("Could not delete configuration upgrade script \"%s\"."), Horde_Util::realPath($path)), 'horde.error'); } $registry->rebuild(); Horde::url('admin/config/index.php', true)->redirect(); } $data = ''; if ($vars->setup == 'conf' && $vars->type == 'php') { /* Save PHP code into a string for creating the script to be run at the * command prompt. */ $data = '#!/usr/bin/env php' . "\n"; $data .= 'get('horde', 'config/') as $app => $php) { $path = $registry->get('fileroot', $app) . '/config'; $data .= '$conf = \'' . $path . '/conf.php\';' . "\n"; /* Add code to save backup. */ $data .= 'if (file_exists($conf)) {' . "\n"; $data .= ' if (is_link($conf)) {' . "\n"; $data .= ' $conf = readlink($conf);' . "\n"; $data .= ' }' . "\n"; $data .= ' if (@copy($conf, \'' . $path . '/conf.bak.php\')) {' . "\n"; $data .= ' echo \'Successfully saved backup configuration.\' . "\n";' . "\n"; $data .= ' } else {' . "\n"; $data .= ' echo \'Could NOT save a backup configuation.\' . "\n";' . "\n"; $data .= ' }' . "\n"; $data .= '}' . "\n"; $data .= 'if (file_put_contents($conf, \''; $data .= str_replace(array('\\', '\''), array('\\\\', '\\\''), $php); $data .= '\')) {' . "\n"; $data .= ' echo \'' . sprintf('Saved %s configuration.', $app) . '\' . "\n";' . "\n"; $data .= '} else {' . "\n"; $data .= ' echo \'' . sprintf('Could NOT save %s configuration.', $app) . '\' . "\n";' . "\n"; $data .= ' exit;' . "\n"; $data .= '}' . "\n\n"; } } if ($vars->save != 'tmp') { /* Output script to browser for download. */ $browser->downloadHeaders($filename, 'text/plain', false, strlen($data)); echo $data; exit; } $tmp_dir = Horde::getTempDir(); /* Add self-destruct code. */ $data .= 'echo \'Self-destructing...\' . "\n";' . "\n"; $data .= 'if (@unlink(__FILE__)) {' . "\n"; $data .= ' echo \'Upgrade script deleted.\' . "\n";' . "\n"; $data .= '} else {' . "\n"; $data .= ' echo \'WARNING!!! REMOVE SCRIPT MANUALLY FROM ' . $tmp_dir . '\' . "\n";' . "\n"; $data .= '}' . "\n"; /* The script should be saved to server's temporary directory. */ $path = Horde_Util::realPath($tmp_dir . '/' . $filename); if (file_put_contents($tmp_dir . '/' . $filename, $data)) { chmod($tmp_dir . '/' . $filename, 0777); $notification->push(sprintf(_("Saved configuration upgrade script to: \"%s\"."), $path), 'horde.success', array('sticky')); } else { $notification->push(sprintf(_("Could not save configuration upgrade script to: \"%s\"."), $path), 'horde.error'); } Horde::url('admin/config/index.php', true)->redirect(); tmpjWNuGb/horde-5.1.5/admin/config/config.php0000644000175000017500000000721612233761315020676 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ require_once __DIR__ . '/../../lib/Application.php'; Horde_Registry::appInit('horde', array( 'permission' => array('horde:administration:configuration') )); if (!Horde_Util::extensionExists('domxml') && !Horde_Util::extensionExists('dom')) { throw new Horde_Exception('You need the domxml or dom PHP extension to use the configuration tool.'); } $vars = $injector->getInstance('Horde_Variables'); $app = $vars->app; $appname = $registry->get('name', $app); $title = sprintf(_("%s Configuration"), $appname); if (empty($app) || !in_array($app, $registry->listAllApps())) { $notification->push(_("Invalid application."), 'horde.error'); Horde::url('admin/config/index.php', true)->redirect(); } $form = new Horde_Config_Form($vars, $app); $form->setButtons(sprintf(_("Generate %s Configuration"), $appname)); if (file_exists($registry->get('fileroot', $app) . '/config/conf.bak.php')) { $form->appendButtons(_("Revert Configuration")); } $php = ''; $path = $registry->get('fileroot', $app) . '/config'; $configFile = $path . '/conf.php'; if (is_link($configFile)) { $configFile = readlink($configFile); } if ($vars->submitbutton == _("Revert Configuration")) { if (@copy($path . '/conf.bak.php', $configFile)) { $notification->push(_("Successfully reverted configuration. Reload to see changes."), 'horde.success'); @unlink($path . '/conf.bak.php'); } else { $notification->push(_("Could not revert configuration."), 'horde.error'); } } elseif ($form->validate($vars)) { $config = new Horde_Config($app); if ($config->writePHPConfig($vars, $php)) { Horde::url('admin/config/index.php', true)->redirect(); } else { $notification->push(sprintf(_("Could not save the configuration file %s. You can either use one of the options to save the code back on %s or copy manually the code below to %s."), Horde_Util::realPath($configFile), Horde::link(Horde::url('admin/config/index.php') . '#update', _("Configuration")) . _("Configuration") . '', Horde_Util::realPath($configFile)), 'horde.warning', array('content.raw', 'sticky')); } } elseif ($form->isSubmitted()) { $notification->push(_("There was an error in the configuration form. Perhaps you left out a required field."), 'horde.error'); } $view = new Horde_View(array( 'templatePath' => HORDE_TEMPLATES . '/admin/config' )); $view->addHelper('Text'); $view->php = $php; /* Create the link for the diff popup only if stored in session. */ if ($session->exists('horde', 'config/' . $app)) { $url = Horde::url('admin/config/diff.php', true)->add('app', $app); $view->diff_popup = Horde::link('#', '', '', '', Horde::popupJs($url, array('height' => 480, 'width' => 640, 'urlencode' => true)) . 'return false;') . _("show differences") . ''; } Horde::startBuffer(); require HORDE_TEMPLATES . '/admin/menu.inc'; $menu_output = Horde::endBuffer(); /* Render the configuration form. */ $renderer = $form->getRenderer(); $renderer->setAttrColumnWidth('50%'); /* Buffer the form template */ Horde::startBuffer(); $form->renderActive($renderer, $vars, Horde::url('admin/config/config.php'), 'post'); $view->form = Horde::endBuffer(); /* Send headers */ $page_output->header(array( 'title' => $title )); /* Output page */ echo $menu_output . $view->render('config'); $page_output->footer(); tmpjWNuGb/horde-5.1.5/admin/config/index.php0000644000175000017500000004411412233761315020536 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ require_once __DIR__ . '/../../lib/Application.php'; Horde_Registry::appInit('horde', array( 'permission' => array('horde:administration:configuration') )); /** * Does an FTP upload to save the configuration. */ function _uploadFTP($params) { global $registry, $notification; $params['hostspec'] = 'localhost'; try { $vfs = Horde_Vfs::factory('ftp', $params); } catch (Horde_Vfs_Exception $e) { $notification->push(sprintf(_("Could not connect to server \"%s\" using FTP: %s"), $params['hostspec'], $e->getMessage()), 'horde.error'); return false; } /* Loop through the config and write to FTP. */ $no_errors = true; foreach ($GLOBALS['session']->get('horde', 'config/') as $app => $config) { $path = $registry->get('fileroot', $app) . '/config'; /* Try to back up the current conf.php. */ if ($vfs->exists($path, 'conf.php')) { try { $vfs->rename($path, 'conf.php', $path, '/conf.bak.php'); $notification->push(_("Successfully saved backup configuration."), 'horde.success'); } catch (Horde_Vfs_Exception $e) { $notification->push(sprintf(_("Could not save a backup configuation: %s"), $e->getMessage()), 'horde.error'); } } try { $vfs->writeData($path, 'conf.php', $config); $notification->push(sprintf(_("Successfully wrote %s"), Horde_Util::realPath($path . '/conf.php')), 'horde.success'); $GLOBALS['session']->remove('horde', 'config/' . $app); } catch (Horde_Vfs_Exception $e) { $no_errors = false; $notification->push(sprintf(_("Could not write configuration for \"%s\": %s"), $app, $e->getMessage()), 'horde.error'); } } $registry->rebuild(); return $no_errors; } $hconfig = new Horde_Config(); $migration = new Horde_Core_Db_Migration(__DIR__ . '/../../..'); $nosql = new Horde_Core_Nosql(); $vars = $injector->getInstance('Horde_Variables'); $a = $registry->listAllApps(); /* Check for versions if requested. */ $versions = array(); if ($vars->check_versions) { $pearConfig = PEAR_Config::singleton(); $packageFile = new PEAR_PackageFile($pearConfig); $packages = array(); foreach ($pearConfig->getRegistry()->packageInfo(null, null, 'pear.horde.org') as $package) { $packages[$package['name']] = $package['version']['release']; } foreach (glob(__DIR__ . '/../../../framework/*/package.xml') as $packagexml) { $package = $packageFile->fromPackageFile($packagexml, PEAR_VALIDATE_NORMAL); $packages[$package->getName()] = $package->getVersion(); } try { $versions = $hconfig->checkVersions(); } catch (Horde_Exception $e) { $notification->push(_("Could not contact server. Try again later."), 'horde.error'); } } /* Update configurations if requested. */ if ($vars->action == 'config') { foreach ($a as $app) { $path = $registry->get('fileroot', $app) . '/config'; if (!file_exists($path . '/conf.xml') || (file_exists($path . '/conf.php') && ($xml_ver = $hconfig->getVersion(@file_get_contents($path . '/conf.xml'))) !== false && ($php_ver = $hconfig->getVersion(@file_get_contents($path . '/conf.php'))) !== false && $xml_ver == $php_ver)) { continue; } $vars = new Horde_Variables(); $form = new Horde_Config_Form($vars, $app, true); $form->setSubmitted(true); if ($form->validate($vars)) { $config = new Horde_Config($app); if (!$config->writePHPConfig($vars)) { $notification->push(sprintf(_("Could not save the configuration file %s. Use one of the options below to save the code."), Horde_Util::realPath($config->configFile())), 'horde.warning', array('content.raw', 'sticky')); } } else { $notification->push(sprintf(_("The configuration for %s cannot be updated automatically. Please update the configuration manually."), $app), 'horde.error'); } } } /* Update schema if requested. */ if ($vars->action == 'schema') { $apps = isset($vars->app) ? array($vars->app) : $migration->apps; foreach ($apps as $app) { $migrator = $migration->getMigrator($app); if ($migrator->getTargetVersion() <= $migrator->getCurrentVersion()) { continue; } try { $migrator->up(); $notification->push(sprintf(_("Updated schema for %s."), $app), 'horde.success'); } catch (Exception $e) { $notification->push($e); } } } /* Create NoSQL indices if requested. */ if ($vars->action == 'nosql_indices') { $nosql->buildIndices($vars->app); } /* Set up some icons. */ $success = Horde::img('alerts/success.png'); $warning = Horde::img('alerts/warning.png'); $error = Horde::img('alerts/error.png'); $self_url = Horde::url('admin/config/'); $conf_url = Horde::url('admin/config/config.php'); $apps = $libraries = array(); $i = -1; $config_outdated = $schema_outdated = false; if (class_exists('Horde_Bundle')) { $apps[0] = array( 'icon' => Horde::img($registry->get('icon', 'horde'), Horde_Bundle::FULLNAME, '', ''), 'name' => '' . Horde_Bundle::FULLNAME . '', 'sort' => '00', 'version' => '' . Horde_Bundle::VERSION . '' ); if (!empty($versions)) { if (!isset($versions[Horde_Bundle::NAME])) { $apps[0]['load'] = $warning; $apps[0]['vstatus'] = _("No stable version exists yet."); } elseif (version_compare($versions[Horde_Bundle::NAME]['version'], Horde_Bundle::VERSION, '>')) { $apps[0]['load'] = $error; $apps[0]['vstatus'] = Horde::link($versions[Horde_Bundle::NAME]['url'], sprintf(_("Download %s"), Horde_Bundle::FULLNAME), '', '_blank') . sprintf(_("A newer version (%s) exists."), $versions[Horde_Bundle::NAME]['version']) . ' '; } else { $apps[0]['load'] = $success; $apps[0]['vstatus'] = _("Module is up-to-date."); } } $i++; } foreach ($a as $app) { $path = $registry->get('fileroot', $app) . '/config'; if (!is_dir($path)) { continue; } $i++; $conf_link = $conf_url ->add('app', $app) ->link(array('title' => sprintf(_("Configure %s"), $app))); $db_link = $self_url ->add(array('app' => $app, 'action' => 'schema')) ->link(array('title' => sprintf(_("Update %s schema"), $app))); $apps[$i]['sort'] = $app; if ($name = $registry->get('name', $app)) { $apps[$i]['sort'] = $name . ' (' . $apps[$i]['sort'] . ')'; } if (file_exists($path . '/conf.xml')) { $apps[$i]['name'] = $conf_link . $apps[$i]['sort'] . ''; } else { $apps[$i]['name'] = $apps[$i]['sort']; } $apps[$i]['icon'] = Horde::img($registry->get('icon', $app), $registry->get('name', $app), '', ''); $apps[$i]['version'] = ''; if ($version = $registry->getVersion($app, true)) { $apps[$i]['version'] = $version; if (!empty($versions)) { if (!isset($versions[$app])) { $apps[$i]['load'] = $warning; $apps[$i]['vstatus'] = _("No stable version exists yet."); } elseif (version_compare(preg_replace('/H\d \((.*)\)/', '$1', $versions[$app]['version']), $apps[$i]['version'], '>')) { $apps[$i]['load'] = $error; $apps[$i]['vstatus'] = Horde::link($versions[$app]['url'], sprintf(_("Download %s"), $app), '', '_blank') . sprintf(_("A newer version (%s) exists."), $versions[$app]['version']) . ' '; } else { $apps[$i]['load'] = $success; $apps[$i]['vstatus'] = _("Module is up-to-date."); } } } if (!file_exists($path . '/conf.xml')) { $apps[$i]['conf'] = $apps[$i]['status'] = ''; } else { if (!file_exists($path . '/conf.php')) { /* No conf.php exists. */ $apps[$i]['conf'] = $conf_link . $error . ''; $apps[$i]['status'] = $conf_link . _("Missing configuration.") . ''; $config_outdated = true; } else { /* A conf.php exists, get the xml version. */ if (($xml_ver = $hconfig->getVersion(@file_get_contents($path . '/conf.xml'))) === false) { $apps[$i]['conf'] = $conf_link . $warning . ''; $apps[$i]['status'] = $conf_link . _("No version found in original configuration. Regenerate configuration.") . ''; $config_outdated = true; continue; } /* Get the generated php version. */ if (($php_ver = $hconfig->getVersion(@file_get_contents($path . '/conf.php'))) === false) { /* No version found in generated php, suggest regenerating just in * case. */ $apps[$i]['conf'] = $conf_link . $warning . ''; $apps[$i]['status'] = $conf_link . _("No version found in your configuration. Regenerate configuration.") . ''; $config_outdated = true; continue; } if ($xml_ver != $php_ver) { /* Versions are not the same, configuration is out of date. */ $apps[$i]['conf'] = $conf_link . $error . ''; $apps[$i]['status'] = $conf_link . _("Configuration is out of date.") . ''; $config_outdated = true; } else { /* Configuration is ok. */ $apps[$i]['conf'] = $conf_link . $success . ''; $apps[$i]['status'] = _("Application is ready."); } } } $apps[$i]['dbstatus'] = $apps[$i]['db'] = array(); if (in_array($app, $migration->apps)) { /* If a DB backend hasn't been configured (yet), an exception will be * thrown. This is fine if this is the intial configuration, or if no * DB will be used. */ try { $migrator = $migration->getMigrator($app); } catch (Horde_Exception $e) { $apps[$i]['db'][] = $warning; $apps[$i]['dbstatus'][] = _("DB access is not configured."); continue; } if ($migrator->getTargetVersion() > $migrator->getCurrentVersion()) { /* Schema is out of date. */ $apps[$i]['db'][] = $db_link . $error . ''; $apps[$i]['dbstatus'][] = $db_link . _("SQL DB schema is out of date.") . ''; $schema_outdated = true; } else { /* Schema is ok. */ $apps[$i]['db'][] = $success; $apps[$i]['dbstatus'][] = _("SQL DB schema is ready."); } } if ($nosql->getDrivers($app, Horde_Core_Nosql::HAS_INDICES)) { if ($nosql->getDrivers($app, Horde_Core_Nosql::NEEDS_INDICES)) { $nosql_link = $self_url ->add(array('app' => $app, 'action' => 'nosql_indices')) ->link(array('title' => sprintf(_("NoSQL indices for %s"), $app))); $apps[$i]['db'][] = $nosql_link . $error . ''; $apps[$i]['dbstatus'][] = $nosql_link . _("NoSQL indices out of date.") . ''; } else { $apps[$i]['db'][] = $success; $apps[$i]['dbstatus'][] = _("NoSQL indices are ready.") . ''; } } } /* Search for outdated library schemas. */ foreach ($migration->apps as $key => $app) { if (in_array($app, $a)) { continue; } $i++; $db_link = $self_url ->add(array('app' => $app, 'action' => 'schema')) ->link(array('title' => sprintf(_("Update %s schema"), $app))); $apps[$i]['sort'] = 'ZZZ' . $app; $apps[$i]['name'] = $app; $apps[$i]['version'] = $apps[$i]['status'] = $apps[$i]['icon'] = $apps[$i]['conf'] = ''; /* If a DB backend hasn't been configured (yet), an exception will be * thrown. This is fine if this is the intial configuration, or if no DB * will be used. */ try { $migrator = $migration->getMigrator($app); } catch (Horde_Exception $e) { $apps[$i]['db'][] = $warning; $apps[$i]['dbstatus'][] = _("DB access is not configured."); continue; } if ($migrator->getTargetVersion() > $migrator->getCurrentVersion()) { /* Schema is out of date. */ $apps[$i]['db'][] = $db_link . $error . ''; $apps[$i]['dbstatus'][] = $db_link . _("SQL DB schema is out of date.") . ''; $schema_outdated = true; } else { /* Schema is ok. */ $apps[$i]['db'][] = $success; $apps[$i]['dbstatus'][] = _("SQL DB schema is ready."); } if (!empty($versions)) { if (isset($packages[$app])) { $apps[$i]['version'] = $packages[$app]; } if (!isset($versions[$app])) { $apps[$i]['load'] = $warning; $apps[$i]['vstatus'] = _("No stable version exists yet."); } elseif (version_compare(preg_replace('/H\d \((.*)\)/', '$1', $versions[$app]['version']), $apps[$i]['version'], '>')) { $apps[$i]['load'] = $error; $apps[$i]['vstatus'] = Horde::link($versions[$app]['url'], sprintf(_("Download %s"), $app), '', '_blank') . sprintf(_("A newer version (%s) exists."), $versions[$app]['version']) . ' '; } else { $apps[$i]['load'] = $success; $apps[$i]['vstatus'] = _("Module is up-to-date."); } } } if (!empty($versions)) { foreach ($packages as $app => $version) { if (in_array($app, $a) || in_array($app, $migration->apps)) { continue; } $i++; $apps[$i]['sort'] = 'ZZZ' . $app; $apps[$i]['name'] = $app; $apps[$i]['version'] = $version; $apps[$i]['dbstatus'] = $apps[$i]['db'] = array(); $apps[$i]['status'] = $apps[$i]['icon'] = $apps[$i]['conf'] = ''; if (!isset($versions[$app])) { $apps[$i]['load'] = $warning; $apps[$i]['vstatus'] = _("No stable version exists yet."); } elseif (version_compare(preg_replace('/H\d \((.*)\)/', '$1', $versions[$app]['version']), $apps[$i]['version'], '>')) { $apps[$i]['load'] = $error; $apps[$i]['vstatus'] = Horde::link($versions[$app]['url'], sprintf(_("Download %s"), $app), '', '_blank') . sprintf(_("A newer version (%s) exists."), $versions[$app]['version']) . ' '; } else { $apps[$i]['load'] = $success; $apps[$i]['vstatus'] = _("Module is up-to-date."); } } } /* Sort the apps by name. */ Horde_Array::arraySort($apps, 'sort'); /* Set up any actions that may be offered. */ $actions = array(); $ftpform = ''; if ($session->get('horde', 'config/')) { $url = Horde::url('admin/config/diff.php'); $action = _("Show differences between currently saved and the newly generated configuration."); $actions[] = array('icon' => Horde::img('search.png', '', 'align="middle"'), 'link' => Horde::link('#', '', '', '', Horde::popupJs($url, array('height' => 480, 'width' => 640, 'urlencode' => true)) . 'return false;') . $action . ''); /* Action to download the configuration upgrade PHP script. */ $url = Horde::url('admin/config/scripts.php')->add(array('setup' => 'conf', 'type' => 'php')); $action = _("Download generated configuration as PHP script."); $actions[] = array('icon' => Horde::img('download.png', '', 'align="middle"'), 'link' => Horde::link($url) . $action . ''); /* Action to save the configuration upgrade PHP script. */ $action = _("Save generated configuration as a PHP script to your server's temporary directory."); $actions[] = array('icon' => Horde::img('save.png', '', 'align="middle"'), 'link' => Horde::link($url->add('save', 'tmp')) . $action . ''); /* Set up the form for FTP upload of scripts. */ $vars = Horde_Variables::getDefaultVariables(); $ftpform = new Horde_Form($vars); $ftpform->setButtons(_("Upload"), true); $ftpform->addVariable(_("Username"), 'username', 'text', true, false, null, array('', 20)); $ftpform->addVariable(_("Password"), 'password', 'password', false); if ($ftpform->validate($vars)) { $ftpform->getInfo($vars, $info); $upload = _uploadFTP($info); if ($upload) { $notification->push(_("Uploaded all application configuration files to the server."), 'horde.success'); Horde::url('admin/config/index.php', true)->redirect(); } } /* Render the form. */ Horde::startBuffer(); $ftpform->renderActive(new Horde_Form_Renderer(), $vars, Horde::url('admin/config/index.php'), 'post'); $ftpform = Horde::endBuffer(); } if (file_exists(Horde::getTempDir() . '/horde_configuration_upgrade.php')) { /* Action to remove the configuration upgrade PHP script. */ $url = Horde::url('admin/config/scripts.php')->add('clean', 'tmp'); $action = _("Remove saved script from server's temporary directory."); $actions[] = array('icon' => Horde::img('delete.png', '', 'align="middle"'), 'link' => Horde::link($url) . $action . ''); } $view = new Horde_View(array( 'templatePath' => HORDE_TEMPLATES . '/admin/config' )); $view->actions = $actions; $view->apps = $apps; $view->config_outdated = $config_outdated; $view->ftpform = $ftpform; $view->schema_outdated = $schema_outdated; $view->version_action = Horde::url('admin/config/index.php'); $view->version_input = Horde_Util::formInput(); $view->versions = !empty($versions); $page_output->addScriptFile('stripe.js', 'horde'); $page_output->header(array( 'title' => sprintf(_("%s Configuration"), $registry->get('name', 'horde')) )); require HORDE_TEMPLATES . '/admin/menu.inc'; echo $view->render('index'); $page_output->footer(); tmpjWNuGb/horde-5.1.5/admin/groups.php0000644000175000017500000001432512233761315017502 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ require_once __DIR__ . '/../lib/Application.php'; Horde_Registry::appInit('horde', array( 'permission' => array('horde:administration:groups') )); $auth = $injector->getInstance('Horde_Core_Factory_Auth')->create(); $groups = $injector->getInstance('Horde_Group'); $vars = $injector->getInstance('Horde_Variables'); $form = $groups->readOnly() ? null : 'add.inc'; $gid = $vars->gid; switch ($vars->actionID) { case 'addform': try { $gid = $groups->create($vars->name); $group = $groups->getData($gid); $form = 'edit.inc'; $notification->push(sprintf(_("\"%s\" was added to the groups system."), $vars->name), 'horde.success'); } catch (Horde_Group_Exception $e) { Horde::logMessage($e, 'ERR'); $notification->push(sprintf(_("Group was not created: %s."), $e->getMessage()), 'horde.error'); break; } break; case 'delete': if ($groups->readOnly()) { break; } try { $group = $groups->getName($gid); $form = 'delete.inc'; } catch (Horde_Group_Exception $e) { } break; case 'deleteform': if ($groups->readOnly() || ($vars->confirm != _("Delete"))) { break; } if (!$groups->exists($gid)) { $notification->push(_("Attempt to delete a non-existent group."), 'horde.error'); break; } $name = $groups->getName($gid); try { $groups->remove($gid); $notification->push(sprintf(_("Successfully deleted \"%s\"."), $name), 'horde.success'); $gid = null; } catch (Horde_Group_Exception $e) { $notification->push(sprintf(_("Unable to delete \"%s\": %s."), $name, $e->getMessage()), 'horde.error'); } break; case 'edit': try { $group = $groups->getData($gid); $form = 'edit.inc'; } catch (Horde_Group_Exception $e) {} break; case 'editform': if ($groups->readOnly()) { break; } try { // Add any new users. $newuser = $vars->new_user; if (!empty($newuser)) { if (is_array($newuser)) { foreach ($newuser as $new) { $groups->addUser($gid, $new); } } else { $groups->addUser($gid, $newuser); } } // Remove any users marked for purging. $removes = $vars->remove; if (!empty($removes) && is_array($removes)) { foreach ($removes as $user => $junk) { $groups->removeUser($gid, $user); } } // Set the email address of the group. $groups->setData($gid, 'email', $vars->email); $notification->push(sprintf(_("Updated \"%s\"."), $groups->getName($gid)), 'horde.success'); } catch (Horde_Group_Exception $e) { $notification->push($e, 'horde.error'); // restore backup copy $group = $restore; } try { $group = $groups->getData($gid); $form = 'edit.inc'; } catch (Horde_Group_Exception $e) {} break; } switch ($form) { case 'addchild.inc': $page_output->addInlineScript(array( '$("child").focus()' ), true); break; case 'edit.inc': /* Set up the lists. */ try { $users = $groups->listUsers($gid); } catch (Horde_Group_Exception $e) { $notification->push($e, 'horde.error'); $users = array(); } /* try { $all_users = $group->listAllUsers(); } catch (Horde_Group_Exception $e) { $notification->push($e, 'horde.error'); $all_users = array(); } $inherited_users = array_diff($all_users, $users); */ $inherited_users = array(); if ($auth->hasCapability('list')) { try { $user_list = $auth->listUsers(); } catch (Horde_Auth_Exception $e) { $notification->push($e, 'horde.error'); $user_list = array(); } sort($user_list); } else { $user_list = array(); } break; } $page_output->header(array( 'title' => _("Group Administration") )); require HORDE_TEMPLATES . '/admin/menu.inc'; if (!empty($form)) { require HORDE_TEMPLATES . '/admin/groups/' . $form; } /* Get the perms tree. */ $nodes = $groups->listAll(); /* Set up some node params. */ $spacer = '    '; $group_node = array('icon' => strval(Horde_Themes::img('group.png'))); $group_url = Horde::url('admin/groups.php', true); $edit = $group_url->copy()->add('actionID', 'edit'); if (!$groups->readOnly()) { $add = $group_url->copy()->add('actionID', 'addchild'); $add_img = Horde::img('add_group.png'); $delete = $group_url->copy()->add('actionID', 'delete'); $delete_img = Horde::img('delete.png', _("Delete Group")); } /* Set up the tree. */ $tree = $injector->getInstance('Horde_Core_Factory_Tree')->create('admin_groups', 'Javascript', array( 'alternate' => true, 'hideHeaders' => true )); $tree->setHeader(array( array( 'class' => 'horde-tree-spacer' ) )); $base_node_params = array( 'icon' => strval(Horde_Themes::img('administration.png')) ); foreach ($nodes as $id => $node) { $node_params = ($gid == $id) ? array('class' => 'selected') : array(); $node_params['url'] = $edit->copy()->add('gid', $id); if ($groups->readOnly()) { $delete_link = null; } else { //$add_link = Horde::link($add->copy()->add('gid', $id), sprintf(_("Add a child group to \"%s\""), $name)) . $add_img . ''; $delete_link = Horde::link($delete->copy()->add('gid', $id), sprintf(_("Delete \"%s\""), $node)) . $delete_img . ''; } $tree->addNode(array( 'id' => $id, 'parent' => null, 'label' => $node, 'expanded' => false, 'params' => $group_node + $node_params, 'right' => array($spacer, $delete_link) )); } echo '

    ' . Horde::img('group.png') . ' ' . _("Groups") . '

    '; $tree->renderTree(); $page_output->footer(); tmpjWNuGb/horde-5.1.5/admin/alarms.php0000644000175000017500000001233412233761315017440 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ require_once __DIR__ . '/../lib/Application.php'; Horde_Registry::appInit('horde', array( 'permission' => array('horde:administration:alarms') )); $horde_alarm = $injector->getInstance('Horde_Alarm'); $methods = array(); foreach ($horde_alarm->handlers() as $name => $method) { $methods[$name] = $method->getDescription(); } $vars = $injector->getInstance('Horde_Variables'); $form = new Horde_Form($vars, _("Add new alarm")); $form->addHidden('', 'alarm', 'text', false); $form->addVariable(_("Alarm title"), 'title', 'text', true); $form->addVariable(_("Alarm start"), 'start', 'datetime', true); $form->addVariable(_("Alarm end"), 'end', 'datetime', false); $form->addVariable(_("Alarm text"), 'text', 'longtext', false); $form->addVariable(_("Alarm methods"), 'methods', 'multienum', true, false, null, array($methods, min(5, count($methods)))); foreach ($horde_alarm->handlers() as $name => $method) { $params = $method->getParameters(); if (!count($params)) { continue; } $form->addVariable($method->getDescription(), '', 'header', false); foreach ($params as $param => $param_info) { $form->addVariable($param_info['desc'], $name . '_' . $param, $param_info['type'], false); } } if ($form->validate()) { $form->getInfo($vars, $info); if (empty($info['alarm'])) { $info['alarm'] = strval(new Horde_Support_Uuid()); } $params = array(); foreach ($info['methods'] as $method) { foreach ($info as $name => $value) { if (strpos($name, $method . '_') === 0) { $params[$method][substr($name, strlen($method) + 1)] = $value; } } } // Full path to any sound files. if (!empty($params['notify']['sound'])) { $params['notify']['sound'] = (string)Horde_Themes::sound($params['notify']['sound']); } try { $horde_alarm->set(array( 'id' => $info['alarm'], 'title' => $info['title'], 'text' => $info['text'], 'start' => new Horde_Date($info['start']), 'end' => empty($info['end']) ? null : new Horde_Date($info['end']), 'methods' => $info['methods'], 'params' => $params )); $notification->push(_("The alarm has been saved."), 'horde.success'); } catch (Horde_Alarm_Exception $e) { $notification->push($e); } } $id = $vars->get('alarm'); if ($id) { if ($vars->get('delete')) { try { $horde_alarm->delete($id, ''); $notification->push(_("The alarm has been deleted."), 'horde.success'); } catch (Horde_Alarm_Exception $e) { $notification->push($e); $id = null; } } else { try { $alarm = $horde_alarm->get($id, ''); $form->setTitle(sprintf(_("Edit \"%s\""), $alarm['title'])); $vars->set('title', $alarm['title']); $vars->set('text', $alarm['text']); $vars->set('start', $alarm['start']->timestamp()); if (!empty($alarm['end'])) { $vars->set('end', $alarm['end']->timestamp()); } $vars->set('methods', $alarm['methods']); foreach ($alarm['params'] as $method => $params) { foreach ($params as $name => $value) { $vars->set($method . '_' . $name, $value); } } } catch (Horde_Alarm_Exception $e) { $notification->push($alarm); $id = $alarm = null; } } } $view = new Horde_View(array( 'templatePath' => HORDE_TEMPLATES . '/admin/alarms' )); $view->addHelper('Text'); if ($horde_alarm instanceof Horde_Alarm_Null) { $view->alarms = array(); $view->error = _("Alarms have been disabled in the configuration"); } else { try { $alarms = $horde_alarm->globalAlarms(); $url = Horde::url('admin/alarms.php'); foreach ($alarms as &$alarm) { $url->add('alarm', $alarm['id']); $alarm['edit_link'] = $url->link() . htmlspecialchars($alarm['title']) . ''; $alarm['delete_link'] = $url->copy() ->add('delete', 1) ->link(array('title' => sprintf(_("Delete \"%s\""), $alarm['title']), 'onclick' => 'return confirm(\'' . addslashes(sprintf(_("Are you sure you want to delete '%s'?"), $alarm['title'])) . '\')')) . Horde::img('delete.png') . ''; } $view->alarms = $alarms; } catch (Horde_Alarm_Exception $e) { $view->alarms = array(); $view->error = sprintf(_("Listing alarms failed: %s"), $e->getMessage()); } } $page_output->header(array( 'title' => _("Alarms") )); require HORDE_TEMPLATES . '/admin/menu.inc'; echo $view->render('list'); if (!($horde_alarm instanceof Horde_Alarm_Null)) { $form->renderActive(); } $page_output->footer(); tmpjWNuGb/horde-5.1.5/admin/locks.php0000644000175000017500000000375112233761315017277 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ require_once __DIR__ . '/../lib/Application.php'; Horde_Registry::appInit('horde', array( 'permission' => array('horde:administration:locks') )); $horde_lock = $injector->getInstance('Horde_Lock'); if ($lock = Horde_Util::getFormData('unlock')) { try { $horde_lock->clearLock($lock); $notification->push(_("The lock has been removed."), 'horde.success'); } catch (Horde_Lock_Exception $e) { $notification->push($e); } } $view = new Horde_View(array( 'templatePath' => HORDE_TEMPLATES . '/admin/locks' )); $view->addHelper('Text'); try { $format = $prefs->getValue('date_format') . ' ' . $prefs->getValue('time_format'); $locks = $horde_lock->getLocks(); $url = Horde::url('admin/locks.php'); foreach ($locks as &$lock) { $lock['unlock_link'] = $url->copy() ->add('unlock', $lock['lock_id']) ->link() . _("Unlock") . ''; if ($appname = $registry->get('name', $lock['lock_scope'])) { $lock['scope'] = $appname; } else { $lock['scope'] = $lock['lock_scope']; } $lock['start'] = strftime($format, $lock['lock_update_timestamp']); $lock['end'] = strftime($format, $lock['lock_expiry_timestamp']); } $view->locks = $locks; $page_output->addScriptFile('tables.js', 'horde'); } catch (Horde_Lock_Exception $e) { $view->locks = array(); $view->error = sprintf(_("Listing locks failed: %s"), $e->getMessage()); } $page_output->header(array( 'title' => _("Locks") )); require HORDE_TEMPLATES . '/admin/menu.inc'; echo $view->render('list'); $page_output->footer(); tmpjWNuGb/horde-5.1.5/admin/locale/0000755000175000017500000000000012262230550016676 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/admin/locale/hu/0000755000175000017500000000000012262230550017312 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/admin/locale/hu/help.xml0000644000175000017500000000371212233761315020775 0ustar mathieumathieu Adminisztrációs eszközök: a PHP Shell A PHP Shell használata A PHP parancsértelmezÅ‘ segítségével tetszÅ‘leges PHP parancsokat hajthat végre a szerveren. Ezeket a parancsokat a gép az eval() függvény segítségével, az aktuálisan érvényes session keretében hajtja végre. E parancsértelmezÅ‘ célja, hogy ki tudjunk próbálni tetszÅ‘leges, egyszerűbb kódrészleteket. Ahhoz azonban, hogy bármilyen outputot lássunk, a kódnak echo vagy print parancsokat kell tartalmaznia. Adminisztrációs eszközök: az SQL Shell Az SQL Shell használata Az SQL parancsértelmezÅ‘ segítségével tetszÅ‘leges SQL parancsot hajthat végre az adatbázison. Ezeket a parancsokat a gép a PEAR::DB révén hajtja végre a $conf['sql']-ben megadott adatbazison. Ezzel az eszközzel lekérdezéseket, bonyolult SQL módosításokat, törléseket hajthat végre, vagy adatokat gyűjthet. Az SQL parancsokat közvetlenül az adatbázisnak küldi, majd visszaadja az eredménykódokat ill. a kapott adatokat. Adminisztrációs eszközök: a parancssor A parancssor használata A parancssor segítségével parancsokat hajthat végre a szerveren. Ez egy-egy parancs gyors végrehajtására jó, vagy arra az esetre, ha más módon nem képes a szerver parancsértelmezÅ‘jéhez (Command Shell) jutnia. tmpjWNuGb/horde-5.1.5/admin/locale/fi/0000755000175000017500000000000012262230550017274 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/admin/locale/fi/help.xml0000644000175000017500000000356412233761315020764 0ustar mathieumathieu Ylläpidon työkalut: PHP-komentotulkki Miten PHP-komentotulkkia käytetään PHP-komentotulkkissa voi suorittaa palvelimella mitä tahansa PHP-komentoja. Nämä komennot suoritetaan eval() funktion sisällä ja nykyisen istunnon kontekstissa. Tämä komentotulkki on ensisijaisesti tarkoitettu syntaksin tarkistukseen ja yksinkertaisen koodin suoritukseen. Huomaa, että tulostaaksesi jotakin, niin sinun pitää käyttää echo ja print komentoja. Ylläpidon työkalut: SQL-komentotulkki Miten SQL-komentotulkkia käytetään SQL-komentotulkissa voi suorittaa mitä tahansa SQL-lausekkeita, jotka suoritetaan tietokannassa. Käytettävä tietokanta on määritelty $conf['sql'] ja sitä käytetään PEAR:DB-luokan avulla. Voit käyttää tätä työkaluja tehdäksesi kyselyjä tietokantaan, päivittääksesi tietoja tietokannassa, poistaaksesi tietoja tietokannasta jne. tai hakea tietoja tietokannasta. SQL-komennot lähetetään suoraan tietokannalle ja paluuarvona tulee statuskoodi ja kyselyn palauttama arvo. Ylläpidon työkalut: Komentotulkki Miten komentotulkkia käytetään Komentotulkin avulla voit suorittaa komentoja www-palvelimella. Voit käyttää tätä toimintoa kun haluat nopeasti suorittaa jonkun komennon palvelimella ja komentotulkki ei ole muuten käytettävissä. tmpjWNuGb/horde-5.1.5/admin/locale/de/0000755000175000017500000000000012262230550017266 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/admin/locale/de/help.xml0000644000175000017500000000352512233761315020753 0ustar mathieumathieu Administratoren-Werkzeuge: PHP-Shell Die Benutzung der PHP-Shell Die PHP-Befehlszeile erlaubt die Ausführung beliebiger PHP-Befehle auf dem Server. Diese Befehle werden im Kontext der aktuellen Sitzung mit Hilfe der eval()-Funktion ausgeführt. Die Shell dient dem Testen von Syntax und dem Ausprobieren einfacher, kleiner Codestücke. Um eine Ausgabe zu erhalten, müssen Sie eine entsprechende Anweisung verwenden, z.B. echo. Administratoren-Werkzeuge: SQL-Shell Die Benutzung der SQL-Shell Die SQL-Shell erlaubt die Ausführung beliebiger SQL-Befehle in der Datenbank. Diese Befehle werden in der Datenbank ausgeführt, die in der Horde-Konfiguration angegeben wurde. Sie können mit der Shell beliebige Anfragen abschicken, komplizierte Aktualisierungen und Löschungen, oder einfache Datensammlungen durchführen. SQL-Befehle werden direkt an die Datenbank geschickt und Rückgabewerte oder Abfragergebnisse angezeigt. Administratoren-Werkzeuge: Befehlszeile Die Benutzung der Befehlszeile Die Befehlszeile erlaubt die Ausführung beliebiger Shell-Befehle auf dem Server. Sie können die Shell benutzen, um ein paar schnelle Operationen durchzuführen, oder wenn Sie keinen anderen Shellzugriff auf den Server haben. tmpjWNuGb/horde-5.1.5/admin/locale/en/0000755000175000017500000000000012262230550017300 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/admin/locale/en/help.xml0000644000175000017500000000307312233761315020763 0ustar mathieumathieu Admin Tools: PHP Shell How to use the PHP Shell The PHP command shell lets you execute arbitrary PHP statements on the server. These commands are executed using the eval() function, and execute in the context of the current session. This shell is intended to try out syntax and execute some simple arbitrary code. Note that to get any output, you must echo or print something in your code fragment. Admin Tools: SQL Shell How to use the SQL Shell The SQL query shell lets you execute arbitrary SQL statements on your database. These commands are executed against the database defined in the Horde configuration file. You can use this tool to do queries into the database, to do complicated SQL updates, deletes, etc., or to do simple data collection. It sends SQL queries to the database directly, and will report return codes and complete result sets. Admin Tools: Command Shell How to use the Command Shell The command shell lets you execute arbitrary shell commands on your server. You can use this to do quick shell operations or when a shell is not otherwise available. tmpjWNuGb/horde-5.1.5/admin/locale/nl/0000755000175000017500000000000012262230550017307 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/admin/locale/nl/help.xml0000644000175000017500000000341412233761315020771 0ustar mathieumathieu Beheergereedschappen: PHP Shell Gebruiksaanwijzing PHP Shell De PHP command shell maakt het u mogelijk om willekeurige PHP commando's op de server uit te voeren. Deze commando's worden uitgevoerd door middel van de eval() functie en worden uitgevoerd in de context van de huidige sessie. Deze shell is bedoeld om syntax uit te proberen en willekeurige eenvoudige code uit te voeren. Let er op dat als u uitvoer wilt zien, u echo of print dient te gebruiken in uw code fragment. Beheergereedschappen: SQL Shell Gebruiksaanwijzing SQL Shell De SQL query shell maakt het u mogelijk willekeurige SQL opdrachten uit te voeren op uw database. Deze commando's worden uitgevoerd op de database die is opgegeven in $conf['sql'] met de PEAR::DB klassen. U kunt deze tool gebruiken om gegevens op te vragen uit de database, gecompliceerde SQL wijzigingen of verwijderingen en dergelijke te doen of eenvoudige rapporten te maken. Het stuurt de SQL opdrachten direct naar de database en geeft de resultaten van deze opdrachten weer. Beheergereedschappen: Command Shell Gebruiksaanwijzing Command Shell De commando shell maakt het u mogelijk om willekeurige shell commando's uit te voeren op uw server. U kunt dit gebruiken om snel shell opdrachten uit te voeren of als een shell verder niet beschikbaar is. tmpjWNuGb/horde-5.1.5/admin/locale/es/0000755000175000017500000000000012262230550017305 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/admin/locale/es/help.xml0000644000175000017500000000352512233761315020772 0ustar mathieumathieu Herramientas de administración: Consola PHP Cómo usar la consola PHP La consola de órdenes PHP le permite ejecutar cualquier órden PHP en el servidor. Las órdenes se ejecutan a través de la función eval() y en el contexto de la sesión actual. El propósito de esta consola es la comprobación de sintaxis y la ejecución de cualquier código sencillo. Tenga en cuenta que para obtener cualquier salida, tiene que hacer echo o imprimir algo en su fragmento de código. Herramientas de administración: Consola SQL Cómo usar la consola SQL La consola de consultas SQL le permite ejecutar cualquier orden SQL en su base de datos. Estas órdenes se ejecutan en la base de datos definida en en archivo de configuración de Horde. Puede usar esta herramienta para realizar consultas en la base de datos, para actualizaciones SQL complejas, eliminaciones, etc. o simplemente para recolección de datos. Envía las consultas SQL directamente a la base de datos y devuelve códigos de retorno y conjuntos de resultados completos. Herramientas de administración: Consola de órdenes Cómo usar la consola de órdenes La consola de ordenes le permite ejecutar cualquier orden de consola en el servidor. Puede utilizarla para realizar operaciones rápidas de consola o si no se dispone ningún otro tipo de consola. tmpjWNuGb/horde-5.1.5/admin/locale/lv/0000755000175000017500000000000012262230550017317 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/admin/locale/lv/help.xml0000644000175000017500000000335612233761315021006 0ustar mathieumathieu Admin Tools: PHP Shell How to use the PHP Shell The PHP command shell lets you execute arbitrary PHP statements on the server. These commands are executed using the eval() function, and execute in the context of the current session. This shell is intended to try out syntax and execute some simple arbitrary code. Note that to get any output, you must echo or print something in your code fragment. Admin Tools: SQL Shell How to use the SQL Shell The SQL query shell lets you execute arbitrary SQL statements on your database. These commands are executed against the database defined in $conf['sql'] using the PEAR::DB classes. You can use this tool to do queries into the database, to do complicated SQL updates, deletes, etc., or to do simple data collection. It sends SQL queries to the database directly, and will report return codes and complete result sets. Admin Tools: Command Shell How to use the Command Shell The command shell lets you execute arbitrary shell commands on your server. You can use this to do quick shell operations or when a shell is not otherwise available. tmpjWNuGb/horde-5.1.5/admin/locale/hr/0000755000175000017500000000000012262230550017307 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/admin/locale/hr/help.xml0000644000175000017500000000334512233761315020774 0ustar mathieumathieu Administratorski alati: PHP ljuska Kako koristiti PHP ljusku PHP ljuska vam omogućava izvrÅ¡avanje proizvoljnih PHP naredbi na poslužitelju. Naredbe se izvrÅ¡avaju pozivom na funkciju eval() u kontekstu trenutne sesije. Ova ljuska je zamiÅ¡ljena za isprobavanje sintakse i izvrÅ¡avanje nekih jednostavnih komada koda. Ako želite dobiti izlaz, vaÅ¡ kod ga mora ispisati pomoću naredbe echo. Administratorski alati: SQL ljuska Kako koristiti SQL ljusku SQL ljuska vam omogućava izvrÅ¡avanje proizvoljnih SQL izjava na bazi podataka. Izjave se izvrÅ¡avaju pomoću PEAR::DB klasa na bazi definiranoj u $conf['sql']. Ovaj alat možete koristiti za pretraživanje baze, kompleksne promjene, brisanja, itd., ili jednostavne statistike. SQL upiti se Å¡alju izravno u bazu i ispisuju se izlazni kodovi i svi rezultati. Administratorski alati: Komandna linija Administratorski alati: Komandna linija Komandna linija vam omogućava izvrÅ¡avanje proizvoljnih naredbi ljuske na vaÅ¡em poslužitelju. Ovo možete koristiti za brzo pokretanje naredbi ili za sluÄaj da ljuska inaÄe nije dostupna. tmpjWNuGb/horde-5.1.5/admin/locale/eu/0000755000175000017500000000000012262230550017307 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/admin/locale/eu/help.xml0000644000175000017500000000320712233761315020771 0ustar mathieumathieu Administrazioko tresnak: PHP shell-a Nola erabili PHP shell-a PHP komando shell-arekin PHP adierazpen arbitrarioak exekuta ditzakezu zerbitzarian. Komando horiek eval() funtzioarekin exekutatzen dira, uneko saioaren testuinguruan. Sintaxia probatu eta zenbait kode arbitrario sinple exekutatzeko erabiltzen da shell-a. Kontuan izan emaitzaren bat lortzeko echo egin edo zerbait inprimatu behar duzula. Administrazioko tresnak: SQL shell-a Nola erabili PHP shell-a SQL kontsultarekin SQL adierazpen arbitrarioak exekuta ditzakezu datu-basean. $conf['sql']-en definitutako datu-basearen aurka exekutatzen dira komandoak, PEAR::DB klaseak erabiliz. Tresna hau erabil dezakezu datu-baseko kontsultak egiteko, SQL eguneratze konplexuak, ezabatzeak, etab. egiteko, edo besterik gabe datuak biltzeko. SQL kontsultak bidaltzen ditu datu-basera zuzenean, eta itzulketa-kodeen eta emaitza multzo osoen berri ematen du. Administrazioko tresnak: komando shell-a Nola erabili komando shell-a Komando shell-arekin shell komando arbitrarioak exekuta ditzakezu zerbitzarian. Hau erabil dezakezu shell eragiketa azkarrak egiteko, edo shell-a bestela erabilgarri ez dagoenean. tmpjWNuGb/horde-5.1.5/admin/sqlshell.php0000644000175000017500000000574312233761315020016 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ require_once __DIR__ . '/../lib/Application.php'; Horde_Registry::appInit('horde', array( 'permission' => array('horde:administration:sqlshell') )); $db = $injector->getInstance('Horde_Db_Adapter'); $q_cache = $session->get('horde', 'sql_query_cache', Horde_Session::TYPE_ARRAY); $title = _("SQL Shell"); $vars = $injector->getInstance('Horde_Variables'); if ($vars->get('list-tables')) { $description = 'LIST TABLES'; $result = $db->tables(); $command = null; } elseif ($command = trim($vars->sql)) { // Keep a cache of prior queries for convenience. if (($key = array_search($command, $q_cache)) !== false) { unset($q_cache[$key]); } $q_cache[] = $command; $q_cache = array_slice($q_cache, -20); $session->set('horde', 'sql_query_cache', $q_cache); // Parse out the query results. try { $result = $db->select(Horde_String::convertCharset($command, 'UTF-8', $conf['sql']['charset'])); } catch (Horde_Db_Exception $e) { $notification->push($e); } } $view = new Horde_View(array( 'templatePath' => HORDE_TEMPLATES . '/admin' )); $view->addHelper('Horde_Core_View_Helper_Help'); $view->addHelper('Text'); $view->action = Horde::url('admin/sqlshell.php'); $view->command = $command; $view->q_cache = $q_cache; $view->title = $title; if (isset($result)) { $keys = null; $rows = array(); $view->results = true; if (is_object($result) && $result->columnCount()) { while ($row = $result->fetch(Horde_Db::FETCH_ASSOC)) { if (is_null($keys)) { $keys = array(); foreach ($row as $key => $val) { $keys[] = Horde_String::convertCharset($key, $conf['sql']['charset'], 'UTF-8'); } } $tmp = array(); foreach ($row as $val) { $tmp[] = Horde_String::convertCharset($val, $conf['sql']['charset'], 'UTF-8'); } $rows[] = $tmp; } } elseif (is_array($result)) { foreach ($result as $val) { if (is_null($keys)) { $keys[] = isset($description) ? $description : ''; } $rows[] = array( Horde_String::convertCharset($val, $conf['sql']['charset'], 'UTF-8') ); } } if (is_null($keys)) { $view->success = true; } else { $view->keys = $keys; $view->rows = $rows; } } $page_output->addScriptFile('stripe.js', 'horde'); $page_output->header(array( 'title' => $title )); require HORDE_TEMPLATES . '/admin/menu.inc'; echo $view->render('sqlshell'); $page_output->footer(); tmpjWNuGb/horde-5.1.5/admin/activesync.php0000644000175000017500000001457312233761315020340 0ustar mathieumathieu * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ require_once __DIR__ . '/../lib/Application.php'; Horde_Registry::appInit('horde', array( 'permission' => array('horde:administration:activesync') )); if (empty($conf['activesync']['enabled'])) { throw new Horde_Exception_PermissionDenied(_("ActiveSync not activated.")); } $stateMachine = $injector->getInstance('Horde_ActiveSyncState'); $stateMachine->setLogger($injector->getInstance('Horde_Log_Logger')); /** Check for any actions **/ if ($actionID = Horde_Util::getPost('actionID')) { $deviceID = Horde_Util::getPost('deviceID'); switch ($actionID) { case 'wipe': $stateMachine->setDeviceRWStatus($deviceID, Horde_ActiveSync::RWSTATUS_PENDING); $GLOBALS['notification']->push(_("A device wipe has been requested. Device will be wiped on next syncronization attempt."), 'horde.success'); break; case 'cancelwipe': $stateMachine->setDeviceRWStatus($deviceID, Horde_ActiveSync::RWSTATUS_OK); $GLOBALS['notification']->push(_("Device wipe successfully canceled."), 'horde.success'); break; case 'delete': $stateMachine->removeState(array( 'devId' => $deviceID, 'user' => Horde_Util::getPost('uid')) ); $GLOBALS['notification']->push(_("Device successfully removed."), 'horde.success'); break; case 'reset': $stateMachine->resetAllPolicyKeys(); $GLOBALS['notification']->push(_("All policy keys successfully reset."), 'horde.success'); break; } Horde::selfUrl()->redirect(); } $devices = $stateMachine->listDevices(); $js = array(); foreach ($devices as $key => $val) { $js[$key] = array( 'id' => $val['device_id'], 'user' => $val['device_user'], 'policykey' => $val['device_policykey'] ); } $page_output->addScriptFile('activesyncadmin.js'); $page_output->addInlineJsVars(array( 'HordeActiveSyncAdmin.devices' => $js )); $page_output->header(array( 'title' => _("ActiveSync Device Administration") )); require HORDE_TEMPLATES . '/admin/menu.inc'; ?>
    strval(Horde_Themes::img('administration.png'))); $device_node = array('icon' => strval(Horde_Themes::img('mobile.png'))); $user_node = array('icon' => strval(Horde_Themes::img('user.png'))); $users = array(); $tree = $injector->getInstance('Horde_Core_Factory_Tree')->create('admin_devices', 'Javascript', array( 'alternate' => true )); $tree->setHeader(array( array( 'class' => 'activesyncHdr1' ), array( 'class' => 'activesyncHdr2', 'html' => _("Last Sync Time") ), array( 'html' => $spacer ), array( 'class' => 'activesyncHdr3', 'html' => _("Policy Key") ), array( 'html' => $spacer ), array( 'class' => 'activesyncHdr4', 'html' => _("Status") ), array( 'html' => $spacer ), array( 'class' => 'activesyncHdr5', 'html' => _("Device ID") ), array( 'html' => $spacer ), array( 'class' => 'activesyncHdr6', 'html' => _("Actions") ) )); /* Root tree node, and reprovision button */ $tree->addNode(array( 'id' => 'root', 'parent' => null, 'label' => _("Registered User Devices"), 'expanded' => true, 'params' => $base_node_params, 'right' => array('--', $spacer, '--', $spacer, '--', $spacer, '--', $spacer, '' ) )); /* Build the device entry */ foreach ($devices as $key => $device) { $node_params = array(); if (array_search($device['device_user'], $users) === false) { $users[] = $device['device_user']; $tree->addNode(array( 'id' => $device['device_user'], 'parent' => 'root', 'label' => $device['device_user'], 'expanded' => false, 'params' => $user_node )); } /* Parse the status */ switch ($device['device_rwstatus']) { case Horde_ActiveSync::RWSTATUS_PENDING: $status = '' . _("Wipe is pending") . ''; $device['ispending'] = true; break; case Horde_ActiveSync::RWSTATUS_WIPED: $status = '' . _("Device is wiped") . ''; break; default: $status = $device['device_policykey'] ?_("Provisioned") : _("Not Provisioned"); break; } /* Last sync time */ $ts = new Horde_Date($stateMachine->getLastSyncTimestamp($device['device_id'], $device['device_user'])); /* Build the action links */ $actions = ''; if ($device['device_policykey']) { $actions .= ''; } elseif ($device['device_rwstatus'] == Horde_ActiveSync::RWSTATUS_PENDING) { $actions .= ''; } $actions .= ' '; /* Add it */ $tree->addNode(array( 'id' => $device['device_id'] . $device['device_user'], 'parent' => $device['device_user'], 'label' => $device['device_type']. ' | ' . $device['device_agent'], 'expanded' => true, 'params' => $device_node + $node_params, 'right' => array($ts->format('r'), $spacer, $device['device_policykey'], $spacer, $status, $spacer, $device['device_id'], $spacer, $actions) )); } echo '

    ' . Horde::img('group.png') . ' ' . _("ActiveSync Devices") . '

    '; $tree->renderTree(); echo '
    '; $page_output->footer(); tmpjWNuGb/horde-5.1.5/admin/perms/0000755000175000017500000000000012262230550016565 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/admin/perms/delete.php0000644000175000017500000000432412233761315020551 0ustar mathieumathieu * @author Jan Schneider * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ require_once __DIR__ . '/../../lib/Application.php'; Horde_Registry::appInit('horde', array( 'permission' => array('horde:administration:perms') )); /* Set up the form variables. */ $vars = $injector->getInstance('Horde_Variables'); $perms = $injector->getInstance('Horde_Perms'); $corePerms = $injector->getInstance('Horde_Core_Perms'); $perm_id = $vars->get('perm_id'); $category = $vars->get('category'); try { $permission = $perms->getPermissionById($perm_id); } catch (Exception $e) { /* If the permission fetched is an error return to permissions list. */ $notification->push(_("Attempt to delete a non-existent permission."), 'horde.error'); Horde::url('admin/perms/index.php', true)->redirect(); } /* Set up form. */ $ui = new Horde_Core_Perms_Ui($perms, $corePerms); $ui->setVars($vars); $ui->setupDeleteForm($permission); if ($confirmed = $ui->validateDeleteForm($info)) { try { $result = $perms->removePermission($permission, true); $notification->push(sprintf(_("Successfully deleted \"%s\"."), $corePerms->getTitle($permission->getName())), 'horde.success'); Horde::url('admin/perms/index.php', true)->redirect(); } catch (Exception $e) { $notification->push(sprintf(_("Unable to delete \"%s\": %s."), $corePerms->getTitle($permission->getName()), $result->getMessage()), 'horde.error'); } } elseif ($confirmed === false) { $notification->push(sprintf(_("Permission \"%s\" not deleted."), $corePerms->getTitle($permission->getName())), 'horde.success'); Horde::url('admin/perms/index.php', true)->redirect(); } $page_output->header(array( 'title' => _("Permissions Administration") )); require HORDE_TEMPLATES . '/admin/menu.inc'; /* Render the form and tree. */ $ui->renderForm('delete.php'); echo '
    '; $ui->renderTree($perm_id); $page_output->footer(); tmpjWNuGb/horde-5.1.5/admin/perms/edit.php0000644000175000017500000001345512233761315020241 0ustar mathieumathieu * @author Jan Schneider * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ require_once __DIR__ . '/../../lib/Application.php'; Horde_Registry::appInit('horde', array( 'permission' => array('horde:administration:perms') )); /* Set up the form variables. */ $vars = $injector->getInstance('Horde_Variables'); $perms = $injector->getInstance('Horde_Perms'); $corePerms = $injector->getInstance('Horde_Core_Perms'); $perm_id = $vars->get('perm_id'); $category = $vars->get('category'); /* See if we need to (and are supposed to) autocreate the permission. */ $redirect = false; if ($category !== null) { try { $permission = $perms->getPermission($category); $perm_id = $perms->getPermissionId($permission); } catch (Horde_Perms_Exception $e) { if ($vars->autocreate) { /* Check to see if the permission we are copying from exists * before we autocreate. */ $copyFrom = $vars->autocreate_copy; if ($copyFrom && !$perms->exists($copyFrom)) { $copyFrom = null; } /* Create parents if necessary. Remove root from the name. */ $root = Horde_Perms::ROOT . ':'; if (substr($category, 0, strlen($root)) == ($root)) { $category = substr($category, strlen($root)); } $pos = -1; while (($pos = strpos($category, ':', $pos + 1)) !== false) { $parent = substr($category, 0, $pos); if (!$perms->exists($parent)) { try { $permission = $corePerms->newPermission($parent); $perms->addPermission($permission); $permission->addDefaultPermission(Horde_Perms::ALL); } catch (Exception $e) { $notification->push($e); Horde::url('admin/perms/index.php', true)->redirect(); } } } try { $permission = $corePerms->newPermission($category); $perms->addPermission($permission); $form = 'edit.inc'; $perm_id = $perms->getPermissionId($permission); if ($copyFrom) { /* We have autocreated the permission and we have been told * to copy an existing permission for the defaults. */ $copyFromObj = $perms->getPermission($copyFrom); $permission->addGuestPermission($copyFromObj->getGuestPermissions(), false); $permission->addDefaultPermission($copyFromObj->getDefaultPermissions(), false); $permission->addCreatorPermission($copyFromObj->getCreatorPermissions(), false); foreach ($copyFromObj->getUserPermissions() as $user => $uperm) { $permission->addUserPermission($user, $uperm, false); } foreach ($copyFromObj->getGroupPermissions() as $group => $gperm) { $permission->addGroupPermission($group, $gperm, false); } } else { /* We have autocreated the permission and we don't have an * existing permission to copy. See if some defaults were * supplied. */ $addPerms = $vars->autocreate_guest; if ($addPerms) { $permission->addGuestPermission($addPerms, false); } $addPerms = $vars->autocreate_default; if ($addPerms) { $permission->addDefaultPermission($addPerms, false); } $addPerms = $vars->autocreate_creator; if ($addPerms) { $permission->addCreatorPermission($addPerms, false); } } $permission->save(); } catch (Exception $e) { $notification->push($e); Horde::url('admin/perms/index.php', true)->redirect(); } } else { $redirect = true; } } catch (Exception $e) { $redirect = true; } $vars->set('perm_id', $perm_id); } else { try { $permission = $perms->getPermissionById($perm_id); } catch (Exception $e) { $redirect = true; } } if ($redirect) { $notification->push(_("Attempt to edit a non-existent permission."), 'horde.error'); Horde::url('admin/perms/index.php', true)->redirect(); } $ui = new Horde_Core_Perms_Ui($perms, $corePerms); $ui->setVars($vars); $ui->setupEditForm($permission); if ($ui->validateEditForm($info)) { /* Update and save the permissions. */ $permission->updatePermissions($info); $permission->save(); $notification->push(sprintf(_("Updated \"%s\"."), $corePerms->getTitle($permission->getName())), 'horde.success'); Horde::url('admin/perms/edit.php', true) ->add('perm_id', $permission->getId()) ->redirect(); } // Buffer the tree rendering Horde::startBuffer(); $ui->renderForm('edit.php'); echo '
    '; $ui->renderTree($perm_id); $tree_output = Horde::endBuffer(); // Buffer the menu output Horde::startBuffer(); require HORDE_TEMPLATES . '/admin/menu.inc'; $menu_output = Horde::endBuffer(); $page_output->header(array( 'title' => _("Permissions Administration") )); /* Render the form and tree. */ echo $menu_output; echo $tree_output; $page_output->footer(); tmpjWNuGb/horde-5.1.5/admin/perms/addchild.php0000644000175000017500000000445112233761315021044 0ustar mathieumathieu * @author Jan Schneider * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ require_once __DIR__ . '/../../lib/Application.php'; Horde_Registry::appInit('horde', array( 'permission' => array('horde:administration:perms') )); /* Set up the form variables. */ $vars = $injector->getInstance('Horde_Variables'); $perms = $injector->getInstance('Horde_Perms'); $corePerms = $injector->getInstance('Horde_Core_Perms'); $perm_id = $vars->get('perm_id'); try { $permission = $perms->getPermissionById($perm_id); } catch (Exception $e) { $notification->push(_("Invalid parent permission."), 'horde.error'); Horde::url('admin/perms/index.php', true)->redirect(); } /* Set up form. */ $ui = new Horde_Core_Perms_Ui($perms, $corePerms); $ui->setVars($vars); $ui->setupAddForm($permission); if ($ui->validateAddForm($info)) { try { if ($info['perm_id'] == Horde_Perms::ROOT) { $child = $corePerms->newPermission($info['child']); $result = $perms->addPermission($child); } else { $pOb = $perms->getPermissionById($info['perm_id']); $name = $pOb->getName() . ':' . str_replace(':', '.', $info['child']); $child = $corePerms->newPermission($name); $result = $perms->addPermission($child); } $notification->push(sprintf(_("\"%s\" was added to the permissions system."), $corePerms->getTitle($child->getName())), 'horde.success'); Horde::url('admin/perms/edit.php', true)->add('perm_id', $child->getId())->redirect(); } catch (Exception $e) { Horde::logMessage($e, 'ERR'); $notification->push(sprintf(_("\"%s\" was not created: %s."), $corePerms->getTitle($child->getName()), $e->getMessage()), 'horde.error'); } } $page_output->header(array( 'title' => _("Permissions Administration") )); require HORDE_TEMPLATES . '/admin/menu.inc'; /* Render the form and tree. */ $ui->renderForm('addchild.php'); echo '
    '; $ui->renderTree($perm_id); $page_output->footer(); tmpjWNuGb/horde-5.1.5/admin/perms/index.php0000644000175000017500000000173412233761315020420 0ustar mathieumathieu * @author Jan Schneider * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ require_once __DIR__ . '/../../lib/Application.php'; Horde_Registry::appInit('horde', array( 'permission' => array('horde:administration:perms') )); $perm_id = Horde_Util::getFormData('perm_id'); $page_output->header(array( 'title' => _("Permissions Administration") )); require HORDE_TEMPLATES . '/admin/menu.inc'; $ui = new Horde_Core_Perms_Ui($injector->getInstance('Horde_Perms'), $injector->getInstance('Horde_Core_Perms')); echo '

    ' . Horde::img('perms.png') . ' ' . _("Permissions") . '

    '; $ui->renderTree($perm_id); $page_output->footer(); tmpjWNuGb/horde-5.1.5/docs/0000755000175000017500000000000012262230550015277 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/docs/UPGRADING0000644000175000017500000004201412233761316016552 0ustar mathieumathieu================= Upgrading Horde ================= :Contact: horde@lists.horde.org .. contents:: Contents .. section-numbering:: General instructions ==================== These are instructions to upgrade from earlier Horde versions. Please backup your existing data before running any of the steps described below. You can't use the updated data with your old Horde version anymore. Upgrading Horde (and all installed Horde libraries and applications) is as easy as running:: pear upgrade -a -B -c horde If you want to upgrade from a Horde version prior to 4.0, please follow the instructions in INSTALL_ to install the most recent Horde version using the PEAR installer. After updating to a newer Horde version, or a newer version of **any** Horde application, you **always** need to update configurations and database schemes. Log in as an administrator, go to Administration => Configuration and update anything that's highlighted as outdated. Upgrading Horde from 5.0.x to 5.1.x =================================== Configuration Options (conf.php) -------------------------------- It is now possible to configure Horde-wide settings for a NoSQL database backend. Addtionally, several Horde packages now allow a NoSQL backend driver to be used. The Memcache configuration options have been deprecated and have been replaced by the generic Horde_HashTable package (which supports both Memcache and Redis servers). Although the previous memcache configuration will continue to work in Horde 5.x, it is recommended to upgrade to the new 'hashtable' configuration setup. The following options were added:: $conf['auth']['resetpassword_from'] The following options were removed:: $conf['cache']['compress'] $conf['cachecssparams']['compress'] Hooks (hooks.php) ----------------- The 'ajaxaction' hook has been deprecated and replaced with the 'ajaxaction_handle' hook (new hook needed in order to allow, e.g., adding tasks to the outgoing response). The following hooks were added:: ajaxaction_data Upgrading Horde from 5.0 to 5.0.1 ================================= Weather portal block -------------------- Google no longer provides a weather API. Support for this has therefore been removed from Horde. If you were using Google as a source for weather, you will need to pick a new provider and update the Horde configuration. Upgrading Horde from 4.x to 5.x =============================== Configuration Options (conf.php) -------------------------------- The $conf['session']['max_time'] option was added. The default is no maximum session time, the same behavior as in Horde 4. The $conf['cachecssparams']['url_version_param'] option was added. This option is only used if no CSScaching is selected (a configuration that is NOT recommended for production servers). The new default is to add version information to CSS server URLs, which is altered behavior from Horde 4. The $conf['cachejsparams']['url_version_param'] option was added. This option is only used if no javascript caching is selected (a configuration that is NOT recommended for production servers). The new default is to add version information to javascript server URLs, which is altered behavior from Horde 4. Hooks (hooks.php) ----------------- The 'appauthenticated' hook has been added. The behavior of the 'pushapp' hook has changed - it is now called a maximum of one time per page access for an application. The 'appinitialized' hook was removed (replaced by the 'appauthenticated' hook). The 'pushapp_post' hook was removed. See ``config/hooks.php.dist`` for further details. Preferences (prefs.php) ----------------------- The 'sending_charset' preference now defaults to 'UTF-8'. Any previous saved value will be deleted when upgrading to 5.0 - if you want to send in a charset other than UTF-8 (NOT RECOMMENDED), you will need to explicitly set this value again (in either ``config/prefs.local.php`` or you preferences storage backend). The 'menu_view' and 'show_sidebar' preferences have been removed. ActiveSync (EAS) Integration ---------------------------- Email support has been added, along with support for the EAS 12.0 and 12.1 protocol versions. New configuration options have been added to support this. You MUST update Horde's ActiveSync configuration. The Custom logging option has been changed to ALWAYS be a path to a directory, and not a specific filename. The security policy settings have been moved out of the global configuration and into the permissions system for greater per user control over policies. New database migrations have been added, you MUST run these migrations for ActiveSync to work. Upgrading Horde from 4.0.x to 4.0.12 ==================================== Weather portal block -------------------- The weather.com website has dropped their API to retrieve weather forecasts with a very short notice. The weather.com portal block has been removed and will be automatically removed from the users' portal configurations too. A new portal block for weather forecasts is available, powered by the new Horde_Service_Weather library that supports a number of free weather services. To provide this block to the end users, install the Horde_Service_Weather library from Horde's PEAR server, and configure a weather service in Horde's configuration:: pear install horde/horde_service_weather-alpha Upgrading Horde from 4.0.x to 4.0.10 ==================================== Configuration changes --------------------- The 'nobase64_img' option was added. Upgrading Horde from 4.0 to 4.0.1 ================================= Configuration Values -------------------- Cyrsql driver: The 'unixhier' parameter has been replaced by the 'userhierarchy' parameter. Hooks ----- The appinitialized hook was added. See ``config/hooks.php.dist`` for more details on this hook. Upgrading Horde from 3.3.x to 4.x ================================= New installation method ----------------------- Since Horde 4 the supported installation method has been changed to install Horde and all dependencies through the PEAR installer. See INSTALL_ for instructions how to install Horde through PEAR. Existing **data** from the latest Horde can be migrated from the configuration screen in the administration section. It is recommended to re-create the **configuration** from scratch though. New configuration scheme ------------------------ With Horde 4 it is no longer necessary to create any configuration files besides ``conf.php`` files. The default configuration files in the ``config/`` directory should work for most systems. If some changes in those files are necessary, **DON'T EDIT THE FILES DIRECTLY or your CHANGES WILL BE LOST with the next upgrade**. Create ``*.local.php`` files instead and only add configuration settings that you want to change from the default values there. See the header of the configuration files for details and examples. ``conf.php`` files are still created and updated as usual through the configuration interface. New database migrations ----------------------- With Horde 4 database updates are no longer done by running SQL scripts through your database server's console or web frontend. A migration framework has been created instead that can be used through the web interface and a command line script. After updating, log in to Horde as an administrator, make sure that all configurations are up-to-date, then click on the ``Update all DB schemas`` button. You can also update the database schemas individually if necessary. Alternatively there is a command line script ``horde-db-migrate`` that can be used for upgrading the database schemas. Call it without any parameters to upgrade schemas for all installed applications and components, or specify the application, component, or ``migration/`` directory that you want to upgrade individually. PostgreSQL ---------- If using PostgreSQL, you must upgrade the value column of the preference table from TEXT to BYTEA **before** running any other upgrade tasks. The necessary SQL statement is found at:: scripts/upgrades/2009-04-13_horde_pgsql_upgrade.sql Configuration changes --------------------- Many configuration names and values have changed. It is suggested that you start with a fresh configuration instead of trying to import some existing configuration from Horde 3. Preferences ----------- The following preferences are no longer used and can be removed from the horde_prefs table if you want to save database storage: * confirm_maintenance * do_maintenance * editor_plugins * last_maintenance Hooks ----- The hooks format has been changed completely. ``hooks.php`` no longer contains separate functions for each hook, but a single class with separate methods for each hook. Please take a look at the new examples in ``hooks.php.dist`` before porting any hooks to Horde 4. Some hook signatures have changed, some hooks have been renamed, removed or added. Noteably the following hooks have changed: * "preauthenticate" (Parameters and return value have changed) * "postauthenticate" (Parameters and return value have changed) * "username_tobackend", "username_frombackend" (Have been combined and renamed to "authusername") * There are only two methods prefs_init() and prefs_change() for all preferences. Alarms ------ The alarm system is using UTC dates now. This can cause problems for a short time after updating to Horde and before the alarms have been refreshed. To avoid any problems you should empty the horde_alarms table after upgrading manually. This SQL query should work:: DELETE FROM horde_alarms The script to generate alarm notifications through a cron job (``scripts/alarms.php``) has been renamed and is installed to a different location when using the PEAR installation method. The new name is ``bin/horde-alarms`` and it will be installed to ``/usr/bin/horde-alarms`` by default. Update your cron jobs accordingly. Groups ------ The groups system has been rewritten. Group hierarchies, i.e. parent and child groups are no longer supported. Support for nested groups will be added at a later point. PEAR packages ------------- The Crypt_Blowfish package is required now. If you installed Horde using the PEAR installer, it will be installed automatically though. Removed features ---------------- * Database abstraction has been moved to a new Horde_Db component. Any database support beside MySQL (native and PDO), PostgreSQL, and SQLite have been removed. If you need support for any other RDBMS, consider sponsoring the development of new drivers for that system. * DataTree support has been removed. Several systems used DataTree as a possible backend for historical reasons. If you still used DataTree backends in Horde 3 and didn't migrate to SQL drivers yet, now you have to. See further below for instructions how to migrate away from DataTree backends. * The krb5 authentication driver has been removed. * The LDAP session handler has been removed. * The enscript and webcpp MIME Viewers have been replaced by the 'Syntaxhighlighter' driver. Upgrading Horde from 3.3.x to 3.3.5 =================================== The signup_email column of the horde_signups table is no longer needed. You can execute the provide SQL script to remove that column, e.g.:: mysql --user=root --password= < scripts/upgrades/3.3_to_3.3.5.sql Upgrading Horde from 3.2.x to 3.3.x =================================== The sequence name for the SQL share driver has been changed from 'sequence' to 'id' You must execute the provided PHP script to update your database:: php scripts/upgrades/2008-08-29_fix_mdb2_sequences.php Note that this upgrade will require you to have the PEAR MDB2_Schema package installed on your system:: pear install MDB2_Schema Upgrading Horde from 3.1.x to 3.2.x =================================== SQL Backends ------------ A few new tables have been added to Horde. Execute one of the provided SQL scripts to update your data to the new Horde version, e.g.:: mysql --user=root --password= < scripts/upgrades/3.1_to_3.2.mysql.sql Beta SQL Drivers ---------------- There are now beta-level SQL drivers for Groups, Shares, and Permissions. There is a script ``horde-convert-datatree-perms-to-sql`` that will migrate all of your DataTree-based permissions to the SQL backend, and ``horde-convert-datatree-groups-to-sql`` that will migrate groups. For shares, you will need to upgrade each application individually. Applications that use shares have entries in ``docs/UPGRADING`` and upgrade scripts ``app-convert-datatree-shares-to-sql`` for creating the SQL share tables and migrating data. The SQL drivers should perform much better than the DataTree versions, but they have not received the same level of testing, thus the beta designation. Memcache Configuration ---------------------- All memcache configuration has been moved to the $conf['memcache'] parameter. Application Hooks ----------------- All hooks that are specific to a single application have been moved to that application's ``config/hooks.php`` file. Split up your existing Hooks from ``horde/config/hooks.php`` and move them to the correct application. Group Hooks ----------- The format for group hook functions has changed from _group_hook_groupName($username) to _group_hook($groupName, $userName). So you will need to modify any existing group hook functions in config/hooks.php for the new interface. Alternatively, an example _group_hook() function is provided in config/hooks.php that will call the old style hook functions for you. Custom Themes ------------- Themes only have a single ``info.php`` file with the theme name in Horde's ``themes`` directory now. If you have any custom themes that provide their own images, you must add a ``themed_graphics`` file to the theme's directory (for all applications the theme provides images for) in order for Horde to know to use the custom images. The file can be empty or contain whatever you wish; it simply needs to exist. Static Log out Links -------------------- If you have hardcoded a log out link in any custom templates or menu items, you must update it to use Horde::getServiceLink(). This is because logging out is now protected by a token to avoid CSRF exploits. Upgrading Horde from 3.1.1 to 3.1.2 =================================== Session Configuration --------------------- A new configuration setting has been added to disable GET-based sessions. If this setting is enabled, session IDs will only be stored in session cookies, requiring the users to enable cookies in their browser and the cookie settings in Horde's configuration to be correct. Using session cookies is much safer since no session information can be stored in any web server or proxy log files, referrer headers, browser caches, or browser bookmarks. .. Warning:: This setting in enabled by default. Additional Indexes for the Preference Table ------------------------------------------- Optionally execute the provided SQL script 2006-06-29_horde_prefs_indexes.sql to create two additional indexes in the preference table, e.g.:: mysql --user=root --password= < scripts/upgrades/2006-06-29_horde_prefs_indexes.sql This increases database performance for some database systems, e.g. PostgreSQL if you have large preference tables. Upgrading Horde from 3.1 to 3.1.1 ================================= MySQL Session Handler --------------------- The mysql session handler has been improved to correctly lock concurrent accesses to the same session. You need to set in the Horde configuration if you want to use row-level locking and transactions or table-level locking. Row-level locking and transactions are only supported by some table engines like InnoDB, and is recommended for session tables. The default table type for MySQL is MyISAM though, that only supports table-level locking. If you used the SQL scripts from Horde 3.1 or earlier to create the session table, this is probably the current engine of you session table. If you want to change the table type to InnoDB, execute the following SQL statement:: ALTER TABLE horde_sessionhandler ENGINE = InnoDB Upgrading Horde from 3.0.x to 3.1.x =================================== SQL Backends ------------ A few new tables have been added to Horde. Execute one of the provided SQL scripts to update your data to the new Horde version, e.g.:: mysql --user=root --password= < scripts/upgrades/3.0_to_3.1.mysql.sql Groups ------ The Horde_Group API uses group IDs instead of group names to avoid ambiguity. Be sure to update any custom code that uses Horde_Group. History ------- The Horde_History storage has been moved out to a separate database table to drastically improve performance. .. Warning:: Migration of the Horde_History data may take a very long time, possibly days, depending on the number of entries. Be sure to execute this script from a location where it will not be timed out by firewall or terminal timeouts. Execute the provided PHP script to migrate your histories to the new table:: horde-move-history-out-of-datatree .. _INSTALL: INSTALL tmpjWNuGb/horde-5.1.5/docs/RELEASE0000644000175000017500000000626112233761316016316 0ustar mathieumathieu============================= Horde Release Process Notes ============================= :Contact: horde@lists.horde.org .. contents:: Contents The steps to use when cutting a new release =========================================== 1. Examine ``*/docs/CHANGES`` files: - Add the word SECURITY in front of any security-related changes, and move them to the top, to draw attention to them. - Cull out the most important ones, and prepare the text of an announcement. - Write the release announcements into the ``docs/RELEASE_NOTES`` file and check if it parses with ``php -l docs/RELEASE_NOTES``. As an extra effort to ensure completeness, you could also check the changelogs for any changes that may not have been inserted in the ``*/docs/CHANGES`` file and integrate them into the above points. 2. Examine ``docs/*`` files, and update the version if this is a major release. Minor releases should not change the versions in these files. Add ``-alpha`` or ``-beta`` sentinels to the ``pear install`` instructions if switching from stable release to pre-release, and vice versa. 3. Update the .pot file: ``horde-translation extract --module foo`` and commit it. 4. Make sure your settings in ``components/config/conf.php`` are correct. 5. Make a "dry run" of the ``horde-components`` script by adding ``--pretend`` to the command line parameters. 6. Create the PEAR package releases using ``horde-components ./foo release``:: - For usage, use the ``--help`` flag. 7. Update the web site (``horde-web`` Git repository): - Edit ``config/versions.php`` to update the version information. 8. Add new version to bugs.horde.org if not added automatically by the release script. If releasing the first stable version after a release cycle, mark all pre-release versions as inactive. 9. Bump version numbers of showstopper tickets that didn't go into the release, then bump version number in the showstopper query on bugs.horde.org. Guidelines for release cycles ============================= * When switching between stable and unstable releases, make sure the release state and release version in package.xml are correct. * During unstable releases the release version must be checked for every release, because the components scripts does automatically bump versions, but doesn't switch versions when changing from alpha to beta to RC. * During unstable releases check carefully the dependency versions. It may be necessary to set an alpha/beta/RC version as the minimum version of a dependency. Example format for announcement messages ======================================== :: The Horde Team is pleased to announce the (first release candidate|official release) of the [MODULE NAME] [MODULE DESCRIPTION] version [VERSION]. [MODULE DESCRIPTION] [Barring any problems, this code will be released as [MODULE] [VERSION]. Testing is requested and comments are encouraged. Updated translations would also be great.] [[MODULE] version H3 ([VERSION]) is a major upgrade in the a.x release series, including these enhancements:] [The major changes compared to the [MODULE] version H3 (a.b) are:] * [CHANGE 1] * [CHANGE 2] * ... tmpjWNuGb/horde-5.1.5/docs/CREDITS0000644000175000017500000002001112233761316016320 0ustar mathieumathieu======================== Horde Development Team ======================== Core Developers =============== - Chuck Hagenbuch - Jan Schneider - Michael Slusarz Localization ============ ===================== ====================================================== Arabic (Syria) Platinum Development Team Basque Euskal Herriko Unibertsitatea Bosnian Alen Sarkinovic Vedran Ljubovic Brazilian Portuguese Carlos Daniel Kibrit Fabio Gomes Luis Felipe Marzagao Eduardo de Carli Bulgarian Miroslav Pendev Catalan Angels Guimerà Jordi Giralt Chinese (Simplified) WangHengWen Liaobin Anna Chen Chinese (Traditional) David Chang Croatian Iva Rumora Matej Vela Czech Pavel Chytil Jan Krivanek Petra Kostinkova Michal Foist Danish Martin List-Petersen Brian Truelsen Niels Baggesen Dutch Jan Kuipers Peter Arien Han Spruyt Arjen de Korte Estonian Toomas Aas Alar Sing Finnish Leena Heino French Frederic Trudeau Thierry Thomas Benoit St-André Pierre Lachance Gregory Colpart Yannick Sebastia Paul De Vlieger Galician Rafael Varela Guillermo Mendez German Jan Schneider Greek Stefanos I. Dimitriou Silligardos Xristoforos Anagnostopoulos Apostolis Konstantinos C. Milosis Hebrew Matt Selsky Hungarian Laszlo L. Tornoci Zoltán Németh Király László Icelandic Bjorn Davidsson Indonesian Slamin James Doe Italian Paola Carpenter Giovanni Meneghetti Federico Giannici Marco Pirovano Cristian Manoni Emilien ) Japanese B.J. Black Takeshi Morishima Hiromi Kimura Khmer Leang Chumsoben Korean J.I Kim Jinhyok Heo Latvian Kaspars Kapenieks Lithuanian Darius Matuliauskas Vilius Šumskas Macedonian Stojan Pesov Norwegian Bokmaal Oystein Steimler Torstein S. Hansen Andreas Gunleikskaas Trond Bjørstad Thomas Chr. Dahl Geir O. Hogberg Lars Tobias Børsting Norwegian Nynorsk Per-Stian Vatne Persian MetaNET Amirkabir Polish Mariusz Zynel Krzysztof Kozlowski Daniel Horecki Krzysztof Kozera Portuguese Nuno Loureiro Manuel Menezes de Sequeira Romanian Corneliu Musat Russian Ignat Ikryanov Fedor A. Fetisov Alexey Zakharov Rashid N. Achilov Slovak Leo Mrafko Ivan Noris Martin Matuška Marika Schvarczova Jozef Sudolský Slovenian Jure Krasovic Matic Dolar Spanish Raúl Alvarez Venegas Manuel Perez Ayala Juan C. Blanco Swedish Andreas Dahlén Joaquim Homrighausen Jakob Alvermark Turkish Genco Yilmaz Istanbul Technical University IT Department Middle East Technical University Ukrainian Andriy Kopystyansky ===================== ====================================================== Themes ====== ============= ========================================= Barbie Atif Ghaffar Brown Marco Obaid Camouflage Atif Ghaffar Cherry Christophe Guilloux Green Nacer Laradji Grey Nacer Laradji Lavender Ziaur Rahman Light-Blue Atif Ghaffar Mozilla Michael Cochrane Orange Ronnie Garcia Simplex Cariad Ilmàra Sun Christophe Guilloux ============= ========================================= The Silver theme contains icons from the Silk icon set (version 1.3): http://www.famfamfam.com/lab/icons/silk/ These icons are licensed under the Creative Commons Attribution 2.5 License: http://creativecommons.org/licenses/by/2.5/ Inactive Developers =================== - Ivan E. Moore II - Mike Hardy - Jon Parise - Anil Madhavapeddy - Rich Lafferty tmpjWNuGb/horde-5.1.5/docs/INSTALL0000644000175000017500000010020712233761316016337 0ustar mathieumathieu============================== Installing Horde Framework 5 ============================== :Contact: horde@lists.horde.org .. contents:: Contents .. section-numbering:: This document contains instructions for installing the Horde Framework on your system. The Horde Framework, by itself, does not provide any significant end user functionality; it provides a base for other applications and tools for developers. When you have installed Horde as described below, you will probably want to install some of the available Horde applications, such as IMP_ (a webmail client), or Kronolith_ (a calendar). There is a list of Horde applications and projects at http://www.horde.org/apps. If you are interested in developing applications for Horde, there is developer documentation and references available at http://dev.horde.org/, and some tutorials and papers on Horde available at http://www.horde.org/community/papers. For information on the capabilities and features of Horde, see the file README_ in the top-level directory of the Horde distribution. .. _IMP: http://www.horde.org/apps/imp .. _Kronolith: http://www.horde.org/apps/kronolith Quick Install ============= These are very terse instructions how to install Horde and its prerequisites on a LAMP_ (Linux, Apache, MySQL, PHP) sytem. They are addressed to experienced administrators who know exactly what they are doing. For more detailed instructions, start reading below at Prerequisites_. 1. Compiling PHP for Apache 2:: cd php-x.x.x/ ./configure --with-apxs2=/usr/sbin/apxs2 \ --with-gettext --enable-mbstring --with-gd \ --with-png-dir=/usr --with-jpeg-dir=/usr \ [--with-mysql|--with-pgsql|--with-ldap] [--with-tidy] make make install 2. Restart Apache. 3. Make sure your PEAR package is up-to-date:: pear upgrade PEAR 4. Register Horde PEAR channel:: pear channel-discover pear.horde.org 5. Set Horde installation directory:: pear install horde/horde_role pear run-scripts horde/horde_role 6. Install Horde:: pear install -a -B horde/horde 7. Configure Horde:: cd config/ cp conf.php.dist conf.php 8. Finish configuration:: http://your-server/horde/ Go to Administration => Configuration => Horde (Or navigate to http://your-server/horde/admin/config) 9. Create database tables Go to Administration => Configuration. Click ``Update All DB Schemas``. 10. Test Horde (optional) Enable the test script in the Horde configuration at the ``General`` in the ``PHP Settings`` section, or edit ``horde/config/conf.php`` and set ``'testdisable'`` to false. Go to:: http://your-server/horde/test.php .. Important:: Disable the test script again after you are done. .. _LAMP: http://www.wikipedia.org/wiki/LAMP_(software_bundle) Prerequisites ============= The following prerequisites are **REQUIRED** for Horde to function properly. 1. A webserver that supports PHP. Horde is primarily developed under the Apache and Lighttpd webservers, which we recommend. These servers are available from: - http://httpd.apache.org/ - http://www.lighttpd.net/ 2. PHP 5.3.0 or above. PHP is the interpreted language in which Horde is written. You can obtain PHP sources at:: http://www.php.net/ .. Note:: While it may be possible to install PHP using the package manager for your operating system, it is highly recommended to install PHP from source, since distribution packages often do not contain the most recent bug and security patches. Follow the instructions in the PHP package to build PHP for your system. If you use Apache, be sure to build PHP as a library with one of the following options:: --with-apache --with-apxs --with-apxs2 options to ``./configure``, and not as a standalone executable. The following PHP extensions respective options are **REQUIRED** by Horde (listed with their own prerequisites and configure options). In many cases, the required libraries and tools can be obtained as packages from your operating system vendor. a. Gettext support. ``--with-gettext`` Gettext is the GNU Translation Project's localization library. Horde uses gettext to provide local translations of text displayed by applications. Information on obtaining the gettext package is available at http://www.gnu.org/software/gettext/gettext.html See also note below on configuring Translations_. All Horde translations are stored in UTF-8, so your underlying system MUST support UTF-8 for all locales that you wish to provide translation support for. b. XML and DOM support. XML and DOM support are enabled in PHP 5 by default. You only have to make sure that you do **not** use ``--disable-dom``, ``--disable-simplexml``, or ``--disable-xml``. Make sure you are using a newer (v2.7 or greater) version of libxml. Older versions of libxml are broken when handling certain charsets. The following PHP options are **RECOMMENDED** to enable advanced features in Horde: a. File Upload Support File upload support is **REQUIRED** by many applications to allow advanced features to work. To enable file upload support: 1. In your php.ini file, the following line **must** be present:: file_uploads = On 2. Your temporary upload directory **must** be writable to the user the web server is running as. If you leave the configuration option ``upload_tmp_dir`` blank in ``php.ini``, PHP will use the default directory compiled into it (normally ``/tmp`` on Unix-like systems). 3. Set the maximum size of the uploaded files via the ``upload_max_filesize`` configuration option in ``php.ini``. For example, to allow 5 MB attachments, place the following line in your ``php.ini`` file:: upload_max_filesize = 5M If either ``file_uploads`` is turned off, or your temporary upload directory is *not* writable by the server, all file upload functionality will be disabled by Horde and will not be available to the user. See the `File Uploads`_ FAQ entry for further information. b. A preferences container. Horde applications can store user preferences in an SQL database, an LDAP directory, an IMSP server, a Kolab server, or in PHP sessions. For SQL database preferences storage, Horde is thoroughly tested on MySQL(i) (``--with-mysql(i)``) and PostgreSQL (``--with-pgsql``), and has been reported to work with SQLite (enabled by default). Preferences can also be stored via LDAP (``--with-ldap``), Kolab (``--with-ldap``), and IMSP. Alternatively, preferences can be stored in PHP sessions, which requires no external programs or configure options, but which will not maintain preferences between sessions. While the LDAP, database, Kolab, or IMSP server need not be running on the machine onto which you are installing Horde, the appropriate client libraries to access the server must be available locally. If a preference container is not configured, no preference options will be configurable via Horde's web interface - the default values stored in each applications ``config/prefs.php`` file will be used. c. Multibyte character support (mbstring and iconv extensions) ``--enable-mbstring`` If these extensions are enabled, Horde can better support multibyte character sets. For iconv support you should use the GNU libiconv library, which is more stable and supports more charsets, compared to other iconv implementations, like Solaris', for example. Iconv support is enabled by default in PHP 5. You only have to make sure that you do **not** use ``--without-iconv`` d. GD support ``--with-gd`` Horde will use the GD extension to perform manipulations on image data through the Horde_Image library. If you want GD to be able to work with PNG images, you should use the ``--with-png-dir`` option to make sure PHP can find the PNG libraries it needs to compile. If you want GD to be able to work with JPEG images, you should use the ``--with-jpeg-dir`` option to make sure PHP can find the JPEG libraries it needs to compile. You can also use the imagick_ extension or the ImageMagick_ package to do these manipulations instead. The imagick_ extension is the recommended method for image manipulation. See the ``Image Manipulation`` tab of the Horde configuration for more details. ImageMagick version 6.5.7 or better is recommended. .. _imagick: http://pecl.php.net/package/imagick .. _ImageMagick: http://www.imagemagick.org e. tidy ``--with-tidy`` The tidy PHP extension is required to sanitize HTML data. .. Important:: Additionally, individual Horde applications may **REQUIRE** or **RECOMMEND** other options to be built into PHP also. Please check ``docs/INSTALL`` for all applications you wish to use to see if other PHP options are needed. f. fileinfo Allows Horde applications to guess the MIME type of files by analyzing their contents. This extension is automatically enabled by default. g. intl The intl extension is required to handle display of Internationalized Domain Names (see RFC 3490), e.g in e-mail addresses. This extension can be enabled by adding the ``--enable-intl`` option when compiling PHP. h. _`curl` ``--with-curl`` The `curl extension`_, if installed, will be used instead of PHP's fopen() when retrieving data from external HTTP servers (remote calendars, web APIs, etc.). This is much more reliable and flexible, so it is recommended to either enable it or install the http_ extension. This extension can be enabled by adding the ``--with-curl`` option when compiling PHP. 3. PEAR Modules PEAR is short for "PHP Extension and Application Repository". The goal of PEAR is to provide a means of distributing reusable code. For more information, see http://pear.php.net/ .. Important:: Make sure you are running a supported (i.e. new enough) version of PEAR: use the test script described below under "`Configuring Horde`_". Do **not** use the PEAR version from ftp.horde.org. Check that the path where the PEAR packages are installed are part of the ``include_path`` parameter that PHP uses to find PEAR packages. Run the command:: pear config-show You will see something like:: PEAR directory php_dir /usr/share/php Now open the php.ini file of your system, for example ``/etc/php.ini``, find the ``include_path`` and make sure that ``/usr/share/php`` is part of the list. If you had to change that value, restart the web server after saving ``php.ini``. .. Important:: If you are going to install Horde the recommended way, i.e. using the PEAR installer, you can skip the remainder of this section. Installing Horde through PEAR will automatically download and install all required PEAR packages. These PEAR packages are **RECOMMENDED** to be installed: a. Net_DNS2 If installed, it will be used instead of the built-in PHP function gethostbyaddr() for host name lookups. This has the advantage that Net_DNS2 has configurable timeouts and retries. To install, enter the following at the command prompt:: pear install Net_DNS2 b. Services_Weather (>= 1.3.1) **REQUIRED** only if you wish to use the weather.com block on the portal page. To install, enter the following at the command prompt:: pear install Services_Weather Additional steps are required if you want use the METAR weather block on the portal page. See the file ``data/Services_Weather/buildMetarDB.php`` in your PEAR directory for details. c. File_Fstab Required only if you use the localhost driver for the Accounts block. To install, enter the following at the command prompt:: pear install File_Fstab This method of installing PEAR packages requires that you have a PHP version that has been compiled as a static binary. All versions of PHP build both both a SAPI module (Apache, CGI, etc.) and a command-line (CLI) binary. Check if you have a php binary in ``/usr/local/bin`` (``/usr/bin`` if you installed from an operating system package) before recompiling. For more detailed directions on installing PEAR packages, see the PEAR documentation at http://pear.php.net/manual/ 4. PECL Modules PECL is short for "PHP Extension Community Library". The goal of PECL is to provide a means of easily distributing PHP extensions. For more information, see http://pecl.php.net/ PECL is the "sister" of PEAR and uses the same packaging and distribution system as PEAR, so the configuration/setup is essentially identical to the PEAR instructions above. When you install a PECL extension, you have to add it to your ``php.ini`` so it gets loaded. Add the following line to your ``php.ini`` file to load the extension (the extension should be installed in the directory specified by the ``extension_dir`` option in ``php.ini``):: extension=fileinfo.so Or on Windows:: extension=fileinfo.dll After that, restart your webserver. These PECL packages are **RECOMMENDED** to be installed: a. imagick The imagick extension can be used by Horde's image library to provide image manipulations. To install, enter the following at the command prompt:: pecl install imagick The imagick extension **must** be compiled against ImageMagick version 6.2.9 or better, though version 6.5.7 or better is recommended. b. horde_lz4 If the horde_lz4 extension is available, Horde can perform real-time compression on data, resulting in reduced storage load on the server for things like cache storage and session data. It is highly recommended. To install, enter the following at the command prompt:: pecl install horde_lz4 c. memcache If using memcache, the memcache PECL extension must be installed. To install, enter the following at the command prompt:: pecl install memcache d. _`http` The `http extension`_, if installed, will be used instead of PHP's fopen() when retrieving data from external HTTP servers (remote calendars, web APIs, etc.). This is much more reliable and flexible, so it recommended to either install this or enable the curl_ extension. To install, enter the following at the command prompt:: pecl install http For additional help on using the pear command-line program to install PECL extensions, see the PEAR installation section above. The following non-PHP prerequisites are **RECOMMENDED**. 1. aspell - Spelling Checker Aspell, a comand-line program, is used as Horde's spell-checking engine. You must install and configure aspell to use Horde's spell-check feature. Version 0.60 or higher is REQUIRED. You can obtain aspell from: http://aspell.sourceforge.net/ The following non-PHP prerequisites are optional. 1. Sendmail. It is highly **RECOMMENDED** that Horde be configured to use SMTP for sending e-mails. Alternatively, Horde can use the local sendmail program, or a program that implements the ``sendmail(8)`` API (as included with postfix, qmail, and exim, among others). However, local use of sendmail binaries to send mail is discouraged due to authentication/permission issues (since Horde will invoke the sendmail binary as the web/PHP user), and because it is not possible to reliably auto-configure sendmail since there is no unified API across platforms/sendmail variants. Installing Horde ================ The **RECOMMENDED** way to install Horde is using the PEAR installer. Alternatively, if you want to run the latest development code or get the latest not yet released fixes, you can install Horde from Git. Installing with PEAR ~~~~~~~~~~~~~~~~~~~~ Before beginning, make sure your PEAR package is up-to-date:: pear upgrade PEAR Next, you need to register the Horde PEAR channel server to your local PEAR system. This has to be done only **once** ever on a single PEAR system:: pear channel-discover pear.horde.org Next install a so-called "role" for Horde. This role defines where Horde is installed. This should be a directory in your web server's web root, e.g. ``/var/www/horde``. Again this has to be done only **once** ever on a single PEAR system:: pear install horde/horde_role pear run-scripts horde/horde_role When installing Horde through PEAR now, the installer will automatically install any dependencies of Horde too. If you want to install Horde with all optional dependencies, but without the binary PECL packages that have to be compiled, specify both the ``-a`` and the ``-B`` flag:: pear install -a -B horde/horde By default, only the required dependencies will be installed:: pear install horde/horde If you want to install Horde even with all binary dependencies, you need to remove the ``-B`` flag. Please note that this might also try to install PHP extensions through PECL that might need further configuration or activation in your PHP configuration:: pear install -a horde/horde Installing into separate PEAR ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Warning:: Unless you really know **why** you want to do this, you probably do **not** want to do this. Use the general PEAR installation instructions from above instead. If you want to create a separate PEAR installation for installing Horde, independent from the system-wide PEAR installation, this can be done with the following commands (in this example, ``/var/www/horde`` is used as the location of the web-accessible horde directory):: mkdir /var/www/horde pear config-create /var/www/horde /var/www/horde/pear.conf pear -c /var/www/horde/pear.conf install pear Then follow the regular installation steps, but use the ``pear`` command from the PEAR installation you just created, e.g.:: /var/www/horde/pear/pear -c /var/www/horde/pear.conf channel-discover \ pear.horde.org Finally configure your web server in some way to point PHP's ``include_path`` setting to the PEAR installation and the ``PHP_PEAR_SYSCONF_DIR`` environment variable to the web root:: php_value include_path /var/www/horde/pear/php SetEnv PHP_PEAR_SYSCONF_DIR /var/www/horde It is recommended to not use the .htaccess file in ``/var/www/horde/`` to set these values because it will be overwritten with every further update. Installing from Git ~~~~~~~~~~~~~~~~~~~ See http://www.horde.org/development/git Configuring Horde ================= 1. Configuring the web server Horde requires the following webserver settings. Examples shown are for Apache; other webservers' configurations will differ. a. PHP interpretation for files matching ``*.php``:: AddType application/x-httpd-php .php .. Note:: The above instructions may not work if you have specified PHP as an output filter with ``SetOutputFilter`` directive in Apache 2.x versions. In particular, Red Hat 8.0 and above Apache 2.x RPMS have the output filter set, and **MUST NOT** have the above ``AddType`` directive added. b. ``index.php`` as an index file (brought up when a user requests a URL for a directory):: DirectoryIndex index.php c. If you plan to provide ActiveSync support to your users, you have to create an alias of the ``/Microsoft-Servers-ActiveSync`` URL to ``/horde/rpc.php``. See http://wiki.horde.org/ActiveSync for details. 2. Configuring Horde To configure Horde, change to the ``config/`` directory of the installed distribution, and copy the ``conf.php.dist`` configuration file to ``conf.php``. Documentation on the format and purpose of the configuration files in the ``config/`` directory can be found in each file. The defaults will be correct for most sites. If you wish to customize Horde's appearance and behavior, create "local" files for the configuration file you want to change. For example if you want to change the default value and lock a preference, create a ``config/prefs.local.php`` file with the following content:: ``), as the shortcut version (````) does not work with `short_open_tag`_ turned off. Files should never end with a closing '?>'. This is redundant and can allow whitespace added to the end of a file to cause PHP to send headers early. .. _short_open_tag: http://www.php.net/manual/en/configuration.directives.php#ini.short-open-tag Header Comment Blocks ===================== All source code files in the Horde distribution should contain the following comment block as the header: Example for `LGPL`_'ed Horde code:: /** * The Horde_Foo class provides an API for various foo * techniques that can be used by Horde applications. * * Copyright 2009-2013 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL-2). If you * did not receive this file, see http://www.horde.org/licenses/lgpl. * * @author Original Author * @author Your Name * @category Horde * @package Package * @license http://www.horde.org/licenses/lgpl LGPL-2 * @since Horde 4.0.1 [only if needed] */ .. _LGPL: http://www.opensource.org/licenses/lgpl-license.php Example for `GPL`_'ed application code:: /** * The App_Bar class contains all functions related to handling * bars in App. * * Copyright 2009-2013 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (GPL). If you * did not receive this file, see http://www.horde.org/licenses/gpl. * * @author Original Author * @author Your Name * @category Horde * @package App * @license http://www.horde.org/licenses/gpl GPL * @since App 1.0.1 [only if needed] */ .. _GPL: http://www.opensource.org/licenses/gpl-license.php There's no hard rule to determine when a new code contributer should be added to the list of authors for a given source file. In general, their changes should fall into the "substantial" category (meaning somewhere around 10% to 20% of code changes). Exceptions could be made for rewriting functions or contributing new logic. Simple code reorganization or bug fixes would not justify the addition of a new individual to the list of authors. Example URLs ============ Use ``example.com`` for all example URLs, per `RFC 2606`_. .. _RFC 2606: http://www.faqs.org/rfcs/rfc2606.html php.ini settings ================ Horde code MUST NOT use global variables set by EGPCS (Environment, GET, POST, Cookie, Server) data. Instead, the magic variables ``$_ENV``, ``$_GET``, ``$_POST``, $_COOKIE``, and ``$_SERVER`` must be used instead. To retrieve posted data (in the global ``$_GET`` and ``$_POST`` variables), you should normally use `Horde_Util::getFormData()`_ which will automatically run `Horde_Util::dispelMagicQuotes()`_. This will ensure that all Horde code will work regardless of the setting of `magic_quotes_gpc`_. The only time you should not use `Horde_Util::getFormData()`_ is if you want to directly access a GET or POST variable instead; in this case, you should use `Horde_Util::getGet()`_ or `Horde_Util::getPost()`_ respectively. All Horde code should work with `error_reporting`_ = E_ALL. Failure to do so would result in ugly output, error logs getting filled with lots of warning messages, or even downright broken scripts. No Horde code should assume that '.' is in the include path. Always specify './' in front of a filename when you are including a file in the same directory. .. _magic_quotes_gpc: http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-gpc .. _error_reporting: http://www.php.net/manual/en/ref.errorfunc.php#ini.error-reporting .. _Horde_Util::getFormData(): http://dev.horde.org/api/framework/Horde_Util/Horde_Util.html#methodgetFormData .. _Horde_Util::dispelMagicQuotes(): http://dev.horde.org/api/framework/Horde_Util/Horde_Util.html#methoddispelMagicQuotes .. _Horde_Util::getGet(): http://dev.horde.org/api/framework/Horde_Util/Horde_Util.html#methodgetGet .. _Horde_Util::getPost(): http://dev.horde.org/api/framework/Horde_Util/Horde_Util.html#methodgetPost HTML 4 Compliance ================= All Horde libraries and applications that generate content to be sent to a web browser are expected to generate HTML 4 compliant syntax. This is a change from earlier mandates to use XHTML 1.0. All tag names and parameters must be lower case including javascript event handlers:: ... ... All tag parameters must be of a valid parameter="value" form (numeric values must also be surrounded by quotes). For parameters that had no value in HTML, the parameter name is the value. For example:: Example All form definitions must be on their own line and either fully defined within a ```` pair or be outside table tags. Forms must also always have an action parameter::
    example
    All JavaScript tags must have a valid type parameter:: Nothing may appear after ````, therefore include any common footers after all other output. All images must have an ``alt`` attribute:: <?php echo _(" /> Input fields of type "image" do not allow the border attribute and may render with a border on some browsers. Use the following instead:: Database Conventions ==================== All database tables used by Horde resources and Horde applications need to make sure that their table and field names work in all databases. Many databases reserve words like 'uid', 'user', etc. for internal use, and forbid words that are SQL keywords (select, where, etc.). Also, all names should be lowercase, with underscores ('_') to separate words, to avoid case sensitivity issues. A good way to do this for field names is to make the field name tablename_fieldname. Other general guidelines: Table names should be plural (users); field names should be singular (user_name). Use Horde_Db for any SQL schema management and for queries, especially for result set pagination ('LIMIT' is not portable). Also, do not use the 'AS' keyword for table aliases. In SQL queries, keywords should be capitalized. Identifiers should not be longer than 30 characters. Regular Expression Use ====================== Always use the `preg_`_ functions instead of `ereg_`_ (and `preg_split()`_ instead of `split()`_); they are included in PHP by default and are faster than `ereg_`_; `ereg_`_ is also deprecated in PHP 5.3+. **NEVER** use a regular expression to match or replace a static string. `explode()`_ (in place of `preg_split()`_), `str_replace()`_, `strpos()`_, or `strtr()`_ do the job much more efficiently. In addition, when doing replacement or regex matching on large strings, if you don't know if the target string contains the text to be matched or replaced, it is often a performance win to use `strpos()`_ to check first. Then, only if the text to be matched or replaced is present, go ahead and do the more memory intensive string manipulation. .. _preg_: http://www.php.net/manual/en/ref.pcre.php .. _ereg_: http://www.php.net/manual/en/ref.regex.php .. _preg_split(): http://www.php.net/manual/en/function.preg-split.php .. _split(): http://www.php.net/manual/en/function.split.php .. _explode(): http://www.php.net/manual/en/function.explode.php .. _str_replace(): http://www.php.net/manual/en/function.str-replace.php .. _strpos(): http://www.php.net/manual/en/function.strpos.php .. _strtr(): http://www.php.net/manual/en/function.strtr.php Parameter Passing ================= Parameters should be passed by value wherever semantically possible. This practice takes full advantage of reference counting. .. Note:: The `ternary operator`_ automatically returns a copy of its operands, so don't use it with objects unless you are sure you want to return an object copy. If at all possible, the number of optional arguments to a function should be limited. If optional arguments are needed, it is usually best to have the last parameter be an array which contains the list of optional arguments. This also eases future expansion since new options can be added without changing the API. .. _`ternary operator`: http://www.php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary Long Lines ========== The optimal line length is 80 characters, including comments. The maximum line length is 100 characters unless this severely impacts the clarity of the code. When deciding where to wrap, aim for readability, understanding that different developers will have different views on this. Always wrap comments and leave at least 2 spaces at the right margin (in other words, wrap at 78 characters). Line Breaks =========== Only use UNIX style of linebreak (``\n``), not Windows/DOS/Mac style (``\r\n``). Using vim, to convert from DOS style type:: :set ff=unix Using vi, to convert from DOS style type:: :g/^M/s///g (Note that the ``^M`` is a control character, and to reproduce it when you type in the vi command you have to pad it first using the special ``^V`` character.) Private Variables ================= Variables used exclusively within a class should begin with a underscore ('_') character. An example class variable definition: ``protected $_variablename;`` Array Definitions ================= When defining arrays, or nested arrays, use the following format, where indentation is noted via the closing parenthesis characters:: $arrayname['index'] = array( 'name1' => 'value1', 'name2' => array( 'subname1' => 'subvalue1', 'subname2' => 'subvalue2' ), ); The only exception should be for empty or short arrays that fit on one line, which may be written as:: $arrayname['index'] = array(); $arrayvar = array('foo1' => 'bar1'); Internationalization (I18n) =========================== Mark all strings presented to the user as gettext strings by calling the gettext shortcut function (``_()``):: echo _("Hello world"); Don't use the gettext functions for strings that will be written to a log file or otherwise presented to the administrator. The Horde_String:: class contains several string manipulation methods that are, as opposed to their PHP equivalents, locale and charset safe. Use Horde_String::convertCharset() if you need to convert between different character set encodings (for example, between user input and a storage backend or data from an external source and the user interface). You don't need to care if the character sets are really different. Use the Horde_String::lower() and Horde_String::upper() methods without a second parameter if you need to perform a locale-independent string conversion. That's the case for all strings that are further processed or interpreted by code. Use these methods with the second parameter set to true for strings that need to be converted correctly according to the current (or specified) character set. Use the other Horde_String:: equivalents of PHP string functions to manipulate strings correctly according to the current (or specified) character set but use the PHP functions for code/machine processed strings. Error checking ============== Horde code should throw ``Horde_Exception`` objects (or equivalent Exception derivatives) to report errors. The calling code should either explicitly catch the exception and handle it or else the Horde-wide exception handler will handle the exception, display an error message, and exit the script:: try { $result = $something->call('may error'); // Succeeded. } catch (Horde_Exception $e) { // Handle error condition. } Do NOT return PEAR_Error objects. Any PEAR_Error objects should be converted to a Horde_Exception before throwing. When throwing a Horde_Exception the error message provided should not be localized. Throwing exceptions is expensive, so use them carefully for logic flow. You should cache results of Horde::callHook() calls for example, if you expect them to not exist. Exceptions in Framework Packages ================================ Exceptions thrown in packages can be divided into two categories: code/logic exceptions and execution exceptions. Code/Logic Exceptions --------------------- These are exceptions that should be thrown when there is an issue with the programming logic - e.g. the environment was not properly set up by an application, or a required parameter was not provided. These type of exceptions should throw one of the SPL Exceptions (e.g. BadFunctionCallException, LogicException, RuntimeException), NOT a package exception. This ensures that errors will normally cause a fatal error, rather than potentially being caught and ignored by the calling code. As such, there is no need to document the exception in phpdoc. Further, the exception messages should not be translated, as these messages are intended for developers not users. Execution Exceptions -------------------- These are exceptions that are thrown due to an error encountered while performing the action requested by the calling code. Any package that throws at least one execution Exception should define a Horde_PackageName_Exception class that extends Horde_Exception. Execution exceptions should use this class when throwing an error. Any method that throws this kind of exception should document it in the phpdoc using the @throws keyword. These messages should be translated, as they potentially could be displayed to the user at the application level. Existence checking ================== Often you'll need to check whether or not a variable or property exists. There are several cases here: a. If you need to know if a variable exists at all and is not ``null``, use `isset()`_:: // Check to see if $param is defined. if (isset($param)) { // $param may be false, but it's there. } b. If you need to know if a variable exists AND has a non-empty value (not ``null``, 0, ``false``, empty string or undefined), use !empty():: // Make sure that $answer exists, is not an empty string, and is // not 0: if (!empty($answer)) { // $answer has some non-false content. } else { // (bool)$answer would be false. } As pointed out in the comment of the else clause, `empty()`_ essentially does the same check as `isset()`_ -- is this variable defined in the current scope? -- and then, if it is, returns what the variable would evaluate to as a boolean. This means that 0, while potentially valid input, is "empty" - so if 0 is valid data for your case, don't use !empty(). c. If you want to know if a variable is a non-empty string, including 0, you have to use `strlen()`_. This only works with strings or scalars that automatically cast to strings without problems:: // Make sure that $str is a non-empty string. $str must exist, so add an // additional check with isset() if necessary. if (strlen($str)) { // $str has a non-zero length. } else { // $str is an empty string '', or null. } d. If you know you are working with a mixed variable then using just `isset()`_ and `empty()`_ could cause unexpected results, for example if testing for a key and the variable is actually a string:: $foo = 'bar'; if (isset($foo['somekey'])) { // This will evaluate to TRUE! } If you know that there is a possibility of a mixed type variable the solution in this case would be to add an `is_array()`_ check in the ``if()`` statement. e. Use `array_key_exists()`_ when you want to check if an array key is defined even if it has a value of ``null``:: // Make sure we have a charset parameter. Value could also be null. if (!array_key_exists('charset', $params)) { throw new Horde_Exception('Incomplete configuration'); } Please note that `array_key_exists()`_ is a performance hit (25%-100%) and should only be used when necessary. Instead try to use !empty() or `isset()`_ instead. .. _isset(): http://www.php.net/manual/en/function.isset.php .. _empty(): http://www.php.net/manual/en/function.empty.php .. _strlen(): http://www.php.net/manual/en/function.strlen.php .. _is_array(): http://www.php.net/manual/en/function.is-array.php .. _array_key_exists(): http://www.php.net/manual/en/function.array-key-exists.php Quotes ====== You should always use single quote (') characters around strings, except where double quote (") characters are required. All literal strings should be in single quotes. A comparison of single and double quote usage follows: Single Quotes: * Variables in the string are not parsed or expanded. * New line symbols can be included as literal line ends (not recommended). * To include a single quote character, escape it with a ``\`` (backslash) character, as in: ``echo 'Here\'s an example';`` * To specify a ``\`` (backslash) character, double it: ``echo 'c:\\temp';`` Double Quotes: * Parses and expands variables in the string. * Uses advanced (`sprintf`_-style) escape sequences like ``\n``, ``\$``, ``\t``, etc. * Should be used in the gettext shortcut ``_("")`` format. * Use with care, as many correct looking strings are really invalid. The following are incorrect:: echo "Today is the $date['day'] of $date['month']" $foo[index] = $foo["old_index"]; .. _sprintf: http://www.php.net/sprintf define() ======== `define()`_ is a somewhat slow function in PHP (as of PHP 4.3.x) so excessive use is discouraged. Every constant created by ``define()`` should be prefixed with ``HORDE_``, its package name, or the application name. Class constants should be defined inside the class using the ``const`` keyword. .. _define(): http://www.php.net/manual/en/function.define.php Security Considerations ======================= The following are a non-exhaustive list of features/functions to take special care with: PHP Code Execution: ------------------- require, include, require_once, include_once - Carefully audit any variables used in these functions, and check the source of any constants as well. eval and create_function - Obvious danger if user input is supplied to it in uncontrolled conditions. preg_replace - The /e modifier is deprecated and must no longer be used. Command Execution: ------------------ exec - Executes a specified command and returns the last line of output. passthru - Executes a specified command and writes the output to STDOUT. `` (backticks) - Executes the specified command and returns all the output in an array. system - Like passthru() but doesn't handle binary data. popen - Executes a specified command and connects its output or input stream to a PHP file descriptor. File Disclosure: ---------------- File functions which can be potentially used to open remote or unintended files: fopen, readfile, file, file_get_contents. Optimizations ============= The following optimizations should be used, if possible: extension_loaded() ------------------ This appears to be an expensive PHP call. Use Horde_Util::extensionExists() instead, which will cache the results of the call. Concatenate strings ------------------- Building a string with concatenation (the "." operator) using single-quoted strings and variables is faster than using an interpolated string (a string inside double quotes with variables inside the string itself). In addition, concatenation is easier to read and audit for logic and security problems. Loops ----- Make sure that you do not continue to define the same variable within a loop. Instead, declare the variable a single time before the loop is run. Additionally, for large amounts of data, do not use foreach() loops, as PHP will make an additional copy in memory of every element of the array when traversing. Instead, use either array_shift, a for() loop, or the next()/each() functions. (NOTE: As of PHP 5, it is possible to indicate that the values should be provided to the interior of the loop by reference, thereby eliminating the need to create a copy of the value.) Array ----- Avoid frequent array accesses. If you use an array or an array member in a loop, assign it to a variable first:: $a = array('x' => 'y'); $entries = array(...); $length = count($entries); $x = $a['x']; for ($i = 0; $i < $length; ++$i) { echo $x; } Don't use array_unique(). The following is reported to be 20 times faster:: $unique = array_keys(array_flip($foo)); Even better, if possible rework the algorithm to store the unique data in the key and then call array_keys($foo) to return the unique list. Avoid array_push(), the [] operator is much faster:: $array[] = 'element'; User defined functions ---------------------- User defined functions are more expensive than "regular" functions. Use them only if they improve the code readability more than regular functions. Dynamically created functions (eval and create_function) -------------------------------------------------------- Code executed with eval, and functions created with create_function, are essentially PHP code that the engine has to parse every time it is run. This code is impossible to cache with an opcode cache, and even without one is slower than regular PHP code. Because they also have security risks, they should be avoided if at all possible. Disk I/O -------- Disk read and write operations are slow. If possible read and write files in large chunks. According to the PHP documentation, file_get_contents() is potentially much faster than using fopen()/fread()/fclose(). BUT the trade-off is the need to read the entire file into memory, so use of file_get_contents() depends on the data size. STDIN/STDOUT/STDERR =================== To access either STDIN, STDOUT, or STDERR, the following code should be used:: while (!feof([STDIN|STDOUT|STDERR])) { $line = fgets([STDIN|STDOUT|STDERR]); // process $line here } PHP Function Issues =================== fpassthru() ----------- This function can fail depending on the size of the stream. Instead, use fread() to get the stream data:: // NO: fpassthru($stream); while (!feof($stream)) { echo fread($stream, 8192); } Hashing Algorithm ================= SHA-1 ----- SHA-1 is the recommended algorithm to use for non-cryptographic hashing actions:: $hash = hash('sha1', $string); MD5 should NOT be used, as it has known collision issues. (NOTE: SHA-1 hashes are 160-bit vs. MD5 hashes which are 128-bit; care needs to be taken if switching between methods regarding storage side of the hash string). tmpjWNuGb/horde-5.1.5/docs/SECURITY0000644000175000017500000002462512233761316016511 0ustar mathieumathieu====================== Horde Security Notes ====================== :Contact: horde@lists.horde.org .. contents:: Contents .. section-numbering:: Temporary files =============== Horde applications make extensive use of temporary files. In order to make sure these files are secure, you should make sure your installation meets the following criteria. Sites may gain increased security by defining a temporary directory in the Horde configuration which is writable by the web server, but not writable by other users. Since the temporary files may contain sensitive information it is best to also make these file unreadable by other users. That is, they can be made readable and writable only by the web server user. PHP Sessions ============ For the most security, you should enable PHP session cookies by enabling the PHP setting ``session.use_cookies``. When doing so, be sure to set an appropriate cookie path and cookie domain in the Horde configuration also to secure your cookies. You should even force session cookie usage in the Horde configuration, which is the default setting in all Horde versions now. If you want to use HTTPS connections, consider forcing users to HTTPS in the Horde configuration. This will force cookies to be sent over secure connections only and helps to prevent sidejacking. If PHP sessions are set to use the ``files`` save_handler, then these files should be secured properly. Sites can increase security by setting the PHP setting ``session.save_path`` to a directory that is only readable and writable by the web server process. Sites with a large user base should consider setting the ``session.entropy_file`` and ``session.entropy_length`` to appropriate values. Horde will encrypt the user credentials before storing them in the session. Thus, a compromised sessions will not reveal the user's stored credentials. Default database passwords ========================== The Horde documentation and sample database creation scripts create a default user and password for accessing the horde database. Using this password in a production environment is a security hole, since an attacker will easily guess it. It is very important that sites change at least the password to something secure. Prevent configuration file reading and writing ============================================== The configuration files may contain sensitive data (such as database passwords) that should not be read or written by local system users or remote web users. If you use a Unix system, one way to make the configuration files and directories accessible only to the web server is as follows. Here we assume that the web server runs as the user ``apache`` and the files are located in ``/home/httpd/html`` -- substitute the correct user or file path if needed:: $ chown -R apache /home/httpd/html/horde/config $ chown -R apache /home/httpd/html/horde/*/config $ chmod -R go-rwx /home/httpd/html/horde/config $ chmod -R go-rwx /home/httpd/html/horde/*/config For completely fascist permissions, you can make the entire Horde tree inaccessible by anyone except the web server user (and root):: $ chown -R apache /home/httpd/html/horde $ chmod -R go-rwx /home/httpd/html/horde $ chmod -R a-w /home/httpd/html/horde/ Note that the last line makes all files unwritable by any user (only root can override this). This makes the site secure, but may make it more difficult to administrate. In particular, it will defeat the Horde administrative configuration interface, forcing you to update the Horde configuration files manually (as per the INSTALL_ instructions). The above will not secure the files if other user's on the same machine can run scripts as the apache user. If you need to protect against this you should make other user's scripts run under their own account with some facility such as apache's suexec module. You need to watch out not only for cgi scripts, but also for other modules like mod_php, mod_perl, mod_python, etc. that may be in use on your server. .. _INSTALL: ?f=INSTALL.html Restricting the test script =========================== The test script (``horde/test.php``) provides a wealth of information that can be used against the site by attackers. This script is disabled by default for this reason. This script is configured via the 'testdisable' configuration option. After manually enabling the script, and once you have confirmed that everything is working, you should disable access to the test script. Preventing Apache from serving configuration and source files ============================================================== The Horde configuration files may contain sensitive data (such as database passwords) that should not be served by the web server. Other directories contain PHP source code that isn't intended for viewing by end-users. The Horde group has provided ``.htaccess`` files in various directories to help protect these files. However, that depends on your web server honoring ``.htacess`` files (which is a performance hit, and may not be available in all web servers). An Apache site can also prevent the web server from serving these files by adding sections to ``httpd.conf`` such as the following:: order deny,allow deny from all order deny,allow deny from all order deny,allow deny from all order deny,allow deny from all order deny,allow deny from all order deny,allow deny from all Repeat this pattern for each Horde application. For example, for IMP you would then add:: order deny,allow deny from all order deny,allow deny from all order deny,allow deny from all order deny,allow deny from all order deny,allow deny from all order deny,allow deny from all Setup scripts ============= There are various scripts use to setup or configure Horde. If you allow other users on the web server machine, you should protect these files from being accessed by them. On a unix system, you might restrict these files to root access by using the following type of commands:: $ chown -R root /home/httpd/html/horde/scripts $ chown -R root /home/httpd/html/horde/*/scripts $ chmod -R go-rwx /home/httpd/html/horde/scripts $ chmod -R go-rwx /home/httpd/html/horde/*/scripts Using a chroot web server setup =============================== Unix users may want to consider using a chroot environment for their web server. How to do this is beyond the scope of this document, but sufficient information exists on the world wide web and/or in your server documentation to complete this task. Hiding PHP info from the user ============================= You should consider setting the following PHP variables in your ``php.ini`` file to prevent information leak to the user, or global insertion by the user:: expose_php = Off display_errors = Off log_errors = On register_globals = Off You should also set up error logging (using the PHP ``error_log`` variable) to log to a file, syslog, or other log destination. Using a secure web server ========================= Horde depends on passing sensitive information (such as passwords and session information) between the web server and the web client. Using a secure (SSL-enabled) web server will help protect this information as it traversing the network. Using a secure POP3/IMAP server =============================== If you are using a POP3/IMAP server with Horde (e.g. for authentication or for IMP) then Horde is passing the user's login credentials between the web server and the mail server. If your web server and IMAP server are on the same host, you can increase security by forcing all traffic over the loopback or localhost interface so that it is not exposed to your network. In cases where that is not possible, we recommend using a secure mail connection such as IMAP-SSL or POP3-SSL to ensure that passwords remain safe. LDAP Security ============= LDAP security is similar to the above POP3/IMAP server security issue. If you are using LDAP, you should make sure that you are not exposing ldap passwords or any sensitive data in your LDAP database. Database socket security ======================== If your database (e.g. MySQL or PostgreSQL) is on the same host as your web server, you may use unix sockets rather than tcp connections to help improve your security (and performance). If it doesn't support unix sockets, you can achieve some better security by restricting the tcp support to the loopback or localhost interface. If the database keeps its socket file (e.g. ``mysql.sock``) in a directory like ``/tmp`` or ``/var/tmp``, you should set permissions carefully to ensure that local users (if you have any) can't delete the socket. The unix "sticky" bit should already be sent on the temporary directory itself, but you also need to make sure the socket itself isn't writable by "other" or users can delete it. You might consider moving the socket file to another location such as ``/var/run`` or the top-level directory of your database program (e.g. ``/var/lib/mysql`` or ``/var/lib/pgsql``). Sendmail or SMTP considerations =============================== In some cases, you can increase security by sending mail via the local command-line sendmail program on your web server, rather than using SMTP. However, there may be reasons to use SMTP instead, such as if your smtp server does spam or virus checking which would be skipped using the local sendmail program. Additional Notes ================ This is by far not a complete security HOWTO. This is just a compiled list of what people have contributed so far. If you have tips, ideas, suggestions or anything else that you think could help others in securing their Horde installation, please let us know. tmpjWNuGb/horde-5.1.5/docs/CONTRIBUTING0000644000175000017500000000304012233761316017135 0ustar mathieumathieu==================== Horde: How to Help ==================== :Contact: core@horde.org There are many ways in which you can help out in the development of any of the Horde projects. The first and best way you are already doing: you're using them. One of the keys to a great product is its users. Without users we can't find bugs or get feedback on what's good and what's bad. It is darn near impossible for the developers to test the code on every Operating System and every different version of Web Browser available to make sure the code runs smoothly everywhere. Linux is not Windows, and IE is not Mozilla, and it is (frequently) difficult to to predict behavior between platforms/browsers. With this said, one of the best ways you can help is to test. If you can help us smooth out the code across all (or even any) platforms, you're doing a great service to the project. Now, if that's not enough and you want to dig in and help code, you should first subscribe to the project lists, particularly the general Horde developers list dev@lists.horde.org (see http://www.horde.org/community/mail for information on subscribing to the mailing lists). Additionally, you **MUST** read the `Horde Coding Standards`_ to ensure that the code your submitting will want to be analyzed and potentially committed by the developers. You should probably read the various README files (for that matter, all the documentation in the ``docs/`` directory) for the particular application you are working on also. .. _`Horde Coding Standards`: ?f=CODING_STANDARDS.html tmpjWNuGb/horde-5.1.5/docs/lighttpd-horde.conf0000644000175000017500000000130412233761316021071 0ustar mathieumathieu## This file should be reviewed prior to inclusion in your lighttpd ## configuration. Specifically, if you have horde somewhere other than ## /horde you will need to edit the following rules to match your server ## configuration. ## This file should be included in your lighttpd.conf file with the "include" ## directive. Example: ## include "path/to/lighttpd-horde.conf" ## The exact path you use will of course depend on your specific configuration. url.rewrite-once += ( ## RPC Rewrite Rules "^/horde/rpc/(.*)$" => "/horde/rpc/index.php/$1" ) $HTTP["url"] =~ "(/templates/|(?). [jan] Fix changing expired passwords. [jan] Fix form to reset passwords. [mjr] Fix displaying activesync devices when a username hook is being used (Bug #12186). [jan] Hide navigation elements from print layout (Bug #12163). [cjh] Add support for New Relic real-user monitoring (RUM) if New Relic is installed. [mms] Login screen now hides the mode input if javascript is not available, as minimal view is the only supported mode (Request #12093). [jan] Fix searching from topbar if search URL contains parameters. ------ v5.0.4 ------ [jan] Update French translation (Paul De Vlieger ). ------ v5.0.3 ------ [jan] Fix setting menu refresh rate to none (Bug #11867). [jan] Update Basque translation (Ibon Igartua ). [jan] Fix JavaScript errors after updating the top menu. ------ v5.0.2 ------ [jan] Fix adding user in admin actions (Bug #11690). [mms] Fix removing user in admin actions (Bug #11690). [jan] Allow to set custom search field label. ------ v5.0.1 ------ [jan] Fix form for editing and removing of users. [mjr] Workaround for broken iOS ActiveSync AUTODISCOVER requests (Bug #11624). [jan] Update Slovak translation (Jozef Sudolský ). [mms] Fix topbar javascript on IE8 (Bug #11614). [jan] Fix LDAP example for authusername hook. ------ v5.0.0 ------ [jan] Update Polish translation (Krzysztof Kozera ). [jan] Update Dutch translation (Arjen de Korte ). --------- v5.0.0RC1 --------- [jan] Port VAT identification block to use SOAP extension. [jan] Fix dynamic updating of portal blocks. [mms] Allow view-specific help files to inherit from base application help file. [mms] Allow application basic/dynamic views to have different help source files. ----------- v5.0.0beta6 ----------- [mms] Show non-javascript enhanced login screen for non-smartmobile mobile browsers (Bug #11215). [mms] Add version parameter to CSS/javascript file URLs to help with cache busting when these files change between releases. [mms] Add configuration option for maximum allowed session times. ----------- v5.0.0beta5 ----------- [jan] Fix cancelling problem report. [jan] Fix audio notification path printed in page output. ----------- v5.0.0beta4 ----------- [jan] Fix logging in without JavaScript (Bug #11328). [mms] Fix sidebar element wrapping. [mms] Better handling of backend authentication errors when returning AJAX data (Bug #11297). [mjr] Fix autocompletion of tags in ajax views. ----------- v5.0.0beta3 ----------- [jan] Fix dependency on Horde_Service_Weather. ----------- v5.0.0beta2 ----------- [mjr] Request SSL connection from map providers if using SSL (Bug #11193). [jan] Remove optional dependency on Horde_DataTree. ----------- v5.0.0beta1 ----------- [jan] Remove DataTree support. [jan] Allow to configure encryption in global IMAP configuration (Request #11272). [jan] Update icon set. [rla] Retrieve more detailed message from Horde_Auth when a user is temporarily or permanently locked out (Request #11254). ------------ v5.0.0alpha1 ------------ [jan] Implement new user interface. [mms] Add 'suppress' option to prefs.php group entries. [mms] Add 'on_change', 'on_init', 'requires', 'requires_nolock', and 'suppress' options to prefs.php preference entries. [mms] Remove support for IE 6. [mms] Token protect all AJAX actions. [jan] Allow to use IMAP storage for shares and groupware data without a complete Kolab server. [mms] Implement growler-like notifications for smartmobile view. [mms] Modified pushapp hook behavior. [mms] Removed pushapp_post hook. [mms] AJAX core features now contained within Horde_Core. [mms] E-mail sending charset now defaults to UTF-8. [mms] Add post-install script for the Horde application [mms] Portal blocks can now load just the CSS necessary to display an application's blocks. [jan] Show notifications during logging into Smartphone mode. ----------- v4.0.16-git ----------- [jan] Fix adding attachments to problem tickets (Bug #10654). [jan] Update Turkish translation (İstanbul Technical University). [jan] Fix setting permissions on static/ directory with horde-set-perms (Bug #11219). ------- v4.0.15 ------- [jan] Update Swedish translation (Jakob Alvermark ). [jan] Update Italian translation (Emilien ). [jan] Update Lybian flag (Request #11169). [jan] Update Slovak translation (Marika Schvarczova ). [jan] Update Czech translation (Michal Foist ). [jan] Update Hungarian translation (Zoltán Németh ). [jan] Fix horde-set-perms script (Arjen de Korte, Bug #11048). ------- v4.0.14 ------- [mjr] Add more atomic control over ActiveSync security policies for better device compatibility. [mms] Add 'sendmail_eol' configuration parameter. [jan] Fix horde-set-perms (piper@hrz.uni-marburg.de, Bug #10923). [jan] Sort user and group names in permission screen (Request #10896). ------- v4.0.13 ------- [jan] Make the lifetime of cached weather information configurable (Arjen de Korte, Request #10848). [jan] Update Dutch translation (Arjen de Korte ). [mjr] Improve layout of weather block. [jan] Update Japanese translation (Hiromi Kimura ). ------- v4.0.12 ------- [mjr] Replace Weatherdotcom portal block with generic Weather block supported by Horde_Service_Weather. [jan] Add configuration option to disable password resets (Request #10640). ------- v4.0.11 ------- [cjh] Add Hordevetica theme. [mjr] Fix issue with ajax uploader and file sizes over 1mb (Bug #10641). [mjr] Do not show results in the tag cloud block owned by other users. ------- v4.0.10 ------- [mjr] Update javascript map library. [mms] Allow in-page base64 image encoding to be disabled via configuration. [jan] Add administration page to list and clear locks. ------ v4.0.9 ------ [rla] Add account locking similar to the former kolab-specific option. [jan] Add missing configuration for LDAP groups write support. [rla] Show a warning when resetting password and no security question is set (Request #10430). [mjr] Update jQuery Mobile to version 1.0 Beta 2. [jan] Update hordeweb theme to match new website layout. ------ v4.0.8 ------ [mjr] Add remove button to image fields (Request #9870). [mjr] Fix sending unnecessary FOLDERSYNC changes. [mjr] Fix issue with FOLDERSYNC requests that was causing Android clients to PING and SYNC the same collection an unlimited number of times. [mjr] Use FQL to obtain event list and add rsvp_status. [cjh] Add mobile maintenance screens. [jan] Fix exporting multiline attributes to vCard 2.1 and vCalendar 1.0. [cjh] New log filter for exact level matching (Bryan Alves ). [jan] Don't set optional integer fields to 0 when automatically updating configuration. [mjr] ActiveSync policykey is now per user, not per device. [mjr] Fix recurring event exception handling for ActiveSync. [mjr] Use AS in column aliases to make PostgreSQL happy (Bug #10346). [jan] Don't show mobile login page if users are forced to traditional or dynamic views (Request #10358). [mjr] Improve calendar PING for iOS devices. [mjr] Prevent an ActiveSync sync loop in some fringe cases. [jan] Update PGP key server list and add SKS pool. ------ v4.0.7 ------ [mjr] Fix returning shares in the proper order when fetching multiple shares by id. [jan] Don't use CSS cache in mobile interfaces because it breaks jQuery Mobile CSS. [mjr] Fix race conditions caused by broken clients sending an inappropriate PING request. [jan] Fix duplication of objects during synchronization (joniw@t-online.de, Bug #10081). [jan] Don't allow to click disabled login button (Bug #10267). [jan] Allow configuration of split read databases for PostgreSQL (Request #7025). [mjr] Honor initial_application setting for mobile view (Bug #10264). [mjr] Fix issue with initial Android ActiveSync pairing. [gwr] Support restricting the HTML tidy post processing by the message size (Request #10266). [gwr] Disabled the timeout on the logout token. [mjr] Fix integer overflow issue in Facebook code (Bug #9889). [mms] Fix adding users with Cyrsql driver (vilius@lnk.lt, Bug #10239). ------ v4.0.6 ------ [jan] Fix extracting of translation strings in a release. [rla] Add user-specific admin permissions (Request #9350). [jan] Don't strip domain from user name in account block. [jan] Fix account block with empty configuration parameters. ------ v4.0.5 ------ [jan] Remove debug code. ------ v4.0.4 ------ [gwr] Added a script for exporting/importing preferences from/to a backend. [mms] Fix regression with UTF7-IMAP encoding of non-ascii folder names (Bug #10093). [mms] Allow numbers to be zero in certain preferences (Bug #10120). [mms] Fix running Horde login tasks (Bug #9767). [mms] Fix authenticating as several users in the same request (Bug #10027). [mms] Fix colorpicker on categories preferences screen (Bug #10118). [jan] Update Spanish translation. [jan] Update Slovak translation. [mjr] Fix Metar portal block. [gwr] Add support for the Kolab IMAP based preferences backend. [mms] Complete fix for issue causing slow syncs only (Bug #10008). ------ v4.0.3 ------ [mjr] Fix usage of countOwners() and listOwners() in the Sqlng driver. [mms] Fix return link after reporting problem (Bug #10069). [jan] Add button to update all configurations with default values at once. [jan] Update DataTree conversion scripts for Horde 4. [jan] Fix rendering of DataTree browse tree. [mjr] Fix issue with deleting identities (Bug #9997). [mjr] Fix issue causing credentials to be lost when accessing the API during ActiveSync requests (Bug #9733). [jan] Store preferences for guests in the session. ------ v4.0.2 ------ [jan] SECURITY: Fix permission checks of guest users on system shares. [mms] SECURITY: Fix deletion of unwanted HTML nodes in XSS filter. [mms] Fix authentication failure when TOS is not accepted. [jan] Don't show IMP compose link if user doesn't have permissions to IMP (Bug #10016). [mms] Fix issue causing slow syncs only in SyncML (Bug #10008). [jan] Fix adding categories. [jan] Fix listing users in Customsql driver (Bug #9963). [jan] Fix calculation of last password change in LDAP account portal block (Bug #9770). [jan] Don't check for outdated DB schemas if database support is disabled (Bug #9986). [mjr] Fix editing settings of fixed portal blocks (Bug #9910). ------ v4.0.1 ------ [mjr] Fix the blockTitle and blockContent API methods. [jan] Fix creating folders with SQL VFS driver (Bug #9894). [jan] Fix LDAP parameters of account portal block (Klaus Steinberger, Bug #9770). [jan] Fix migration detection on Windows. [mjr] Correctly sanitize DSN when using custom cyrus auth driver (Bug #9879). [mjr] Fix some display issues when geocoding with HordeMap (Bug #9883). [mms] Don't load sidebar content if not expanded. [jan] Fix deleting groups. [jan] Fix adding new groups (Bug #9881). [jan] Fix displaying the Facebook preference group. [mms] Add appinitialized hook. [cjh] Fix cyrsql configuration, rename cyrus host and port parameters to not clash with Horde_Db parameters (Bug #9864). [cjh] Fix signups, and update style on signup and reset password pages to match the login page (Bug #9856, partially from Ian Roth ). [cjh] Show an unknown app icon rather than a broken image if an application doesn't have an icon (Bug #9867). [jan] Fix setting incorrect database charset in PDO drivers. ---- v4.0 ---- [mms] Add pushapp_post hook. [jan] Fix application-specific permission checks (Bug #9786). [jan] Fix resetting passwords (Vilius Sumskas , Bug #9800). [jan] Fix Cyrsql authentication driver (Vilius Sumskas , Bug #9781). [mjr] Fix ActiveSync provisioning. [mjr] Fix for broken Nokia MfE clients (Bug #9757). [jan] Delete object mappings too when deleting SyncML anchors (Request #9377). [jan] Delay sidebar creation if the sidebar is generated through JavaScript. -------- v4.0-RC2 -------- [jan] Fix incorrect lowercasing of objectClasses in LDAP groups driver. [jan] Fix fatal error in desktop notifications (Bug #9727). [jan] Rename all scripts in bin/ to be prefixed with horde- and installed in PEAR's bin_dir (Request #9647). [jan] Don't throw exception when setting port number while using localhost in MySQL configuration (Bug #9738). [jan] Fix building LDAP filter for groups from configuration (Bug #9739). [jan] Fix loading of Horde's vhost conf.php file (Bug #9704). [jan] Fix OpenOffice MIME viewer. [jan] Fire access keys on hidden elements in Internet Explorer (Bug #8057). [jan] Don't fire access keys twice in Chrome browsers. [jan] Fix JavaScript date calculations across DST boundaries. [jan] Sort applications in preference menu by name. [jan] Add translations for file upload error messages. [mms] Fix identities pref UI when default_identity is locked (Bug #9701). [mms] Added Horde::debug(). -------- v4.0-RC1 -------- [jan] Update installation and upgrade instructions. [jan] Fix converting identities with non-ascii characters to new format. [jan] Fix passing arguments to sendmail binary (Gonçalo Queirós, Bug #9693). [mjr] Service_Facebook refactored for OAuth2 authentication (Bug #9122). [mjr] IMSP drivers refactored for Horde 4. [gwr] Allow disabling applications for administrators. [jan] Don't show sub-permissions for adding that exist already. [jan] Fix listing more than one sub-permission (Bug #9671). [jan] Fix calendar synchronization with certain Nokia phones (Bug #9646). ---------- v4.0-BETA1 ---------- [jan] Catch fatal errors about missing tables during initial configuration. [mms] Fix client-side IMAP sorting using envelope data. [mms] Workaround PHP < 5.2.6 (broken stream handling) (Bug #9644). [mjr] Fix updating schema for individual libraries. [mjr] Improved control over which application view to load. [jan] Find translateable strings in configuration files. [mms] Fix clearing expanded state for javascript trees (Bug #9659). [jan] Only show advanced preferences link if there are some. [mms] Fix updates for refreshing Blocks (Bug #9655). [mjr] Fix viewing applications with no mobile view from mobile devices. [jan] Fix error when not using a Group backend. (Bug #9642). ----------- v4.0-ALPHA1 ----------- [jan] Provide default configuration files instead of .dist versions. [jan] Add a new Share SQL driver with better performance. [cjh] Drop Log SQL driver. [mms] Update prototypejs to v1.7. [mms] Add theme caching. [mms] Add hook to allow browser capabilities to be modified. [jan] Add a configuration switch for automatic creation of default shares. [cjh] Move from Net_DNS to Net_DNS2. [jan] Translations for the framework packages are now bundled with those packages. [bak] Remove LDAP driver from Horde_SessionHandler [jan] Require mandatory UTF-8 support for both servers and clients. [jan] Renamed Setup to Configuration and Options to Preferences. [mms] Moved sidebar code out of block/portal code (Request #9160). [cjh] Remove fckeditor, standardizing on ckeditor. [jan] Move all translations from po/ to locale/ and use short locale identifiers where possible. [jan] Remove frameset. [jan] Remove dhtmlHistory library. [mms] Removed support for krb5 authentication driver. [jan] Allow to specify the URL parameter name for the alternate login setting. [mms] Remove reliance on PEAR Mail library. [jan] Send alarm emails again if the alarm has changed (Bug #8717). [mms] Add advanced preferences options screen. [mms] Complete rewrite of preferences UI display. [mjr] Horde_Image can now act as an Iterator for multi-page images. [mms] Remove Horde_Cipher library. [mms] Add 'cssfiles' hook to add custom CSS files to a page. [jan] Add configuration to not automatically show all available shares. [jan] Add configuration to disallow world permissions for user shares. [jan] Store alarm dates in UTC (Bug #8381). [mms] Add abstracted AJAX interface (Request #4561). [mms] Update scriptaculous to v1.8.3. [mjr] Add Horde_Image_Exif (ported from Ansel) and add a exiftool driver. [mjr] Horde_Image now has a native Imagick driver (removed proxy code). [mms] All Horde login/authentication handled by single login page. [mms] Move imple processing to a Horde service. [mms] Refactor Maintenance:: -> Horde_LoginTasks::. [mms] In Postgres, horde_prefs table now stores data in BYTEA instead of TEXT (Bug #8130). [mms] Improved caching of Registry data significantly reduces session sizes and total session storage requirements (Request #8024). [mms] IMAP auth driver now uses Horde_Imap_Client library. [mms] Use Gnumeric package to render MS Excel files. [mms] Use AbiWord package to render MS Word files. [cjh] Remove sapdb session handler backend. [jan] Add share locking (Alfonso Marín Marín ). [cjh] Remove javascript popup alarms. [cjh] Update the Auth_passwd driver's add/update/remove user implementations (Bug #7810). [cjh] Add a Horde_Routes dispatcher for Rampage applications. [mjr] Fix a possible infinite loop with certain recurring events in Horde_Date. [jan] Use DateTime internally in Horde_Date. ------- v3.3.12 ------- [jan] Convert charset of group names in SQL driver (Bug #9611). [jan] Fix deleting of SyncML anchors if PHP short_open_tag is off (Bug #9349). [jan] Add an experimental new Share SQL driver with better performance. [jan] Fix integer overflow in ASN.1 parser for S/MIME messages. [jan] Fix splitread database usage in VFS (Bug #9467). [jan] Fix invalidating permission cache in SQL driver (Bug #9392). ------- v3.3.11 ------- [mms] SECURITY: Fix XSS when viewing details of a vCard. [jan] Fix exporting recurrence exceptions to vCalendar 1.0. [jan] Skip event status synchronization with Outlook, which is broken. [jan] Don't send SIF data to recent Funambol clients, unless requested. [jan] Log all queries and errors by the history library. ------- v3.3.10 ------- [jan] Fix searching DataTree elements (groups) if backend charset is different from interface charset (Bug #9323). [mms] Fix accessing IMAP ACLs that contain non-alphanumeric characters (Bug #9299). [jan] Avoid fatal errors when using DateTime with not properly configured PHP 5.3+ (Bug #9312). [jan] Fix importing recurrence exceptions from vCalendar 1.0. [mms] Fix preferences management regression (Bug #9289). [jan] Fix conversion of all-day events and certain yearly recurring events for Funambol clients. [mms] Fix memcache cache regression (Bug #9279). [jan] Fix SyncML page sometimes deleting more anchors than selected. ------ v3.3.9 ------ [jan] SECURITY: Add token protection to preference forms. [mms] SECURITY: Fix XSS in util/icon_browser.php. [mms] Fix generating RFC 2231 parameters with charset information (Bug #9212). [mms] On invalid token during logout, redirect to initial page (Bug #7669). [mjr] Don't allow fixed blocks to be changed to another type (Bug #9141). [jan] Show future alarms in the alarm management screen too. [mjr] Fix bug in Horde_Cache that would prevent cache entries from being expired in certain cases, and prevent cache key collisions. ------ v3.3.8 ------ [jan] Fix framework include path. ------ v3.3.7 ------ [mjr] Fix issue in Horde_Image that would cause generated images to lose transparency in certain situations. [jan] Allow to update existing identities while requiring email confirmation (Sebastian Rettenberger, Bug #8877). [jan] Fix casting errors when using SQL shares and groups on PostgreSQL (Bug #8899). [gwr] Allow conf.d style directory configuration overriding (Request #8172). [jan] Fix sending alarms to multiple users (Bug #8821). [mms] Fix display of S/MIME certificate data (Bug #8826). [mjr] Fix bug in Horde_Image that caused polaroid effect to fail on really old ImageMagick versions (earlier then 6.3.2). [jan] Work around Funambol clients requiring a "configuration" database (Bug #8621). [jan] Add support for synchronizing only those fields that are supported by the client. [jan] Workaround broken PHP number formatting with some locales (Bug #8780). ------ v3.3.6 ------ [mms] SECURITY: Workaround XSS vulnerability in Firefox for data URLs (Bug #8715). [jan] SECURITY: Fix XSS in administrator section. [jan] Fix alarm system with Oracle backends. [mjr] Fix using the removeUserDataFromAllApplications method (Valentin Vidic , Bug #8754). [mjr] Fix checking existing signup requests in the Auth_Signup_datatree driver. [jan] Fix syntax of MSSQL scripts (Bug #8664). [jan] Export task alarms to Funambol clients (Request #8426). [jan] Fix not catching Alt key combinations for access keys on Mac OS. [jan] Fix Oracle SQL scripts. [jan] Close popup window after saving categories. [jan] Check quota when copying files with VFS (Valentin Vidic , Bug #8643). [jan] Add Croatian translation (Matej Vela ). [jan] Fix detecting SyncML message sizes. [jan] Fix mapping of elements during synchronization (Bug #8386). [mms] Fix potential session writing issues using PHP 5.0.5+. [jan] Fix error in PHP 5 SOAP server implementation. [mms] Fix updating memcache tracking info upon session destruction (whatdoyouwant@gmail.com, Bug #8626). [mjr] Various improvements and fixes to the Net_IMSP driver (noah@lsit.ucsb.edu; Bug #8532, #8533, #8534, and #8535). [jan] Export recurrence exceptions to Funambol clients (Alfonso Marín Marín , Request #8065). [jan] Export all email addresses to Funambol clients (lst_hoe02@kwsoft.de, Request #8571). [jan] Export all fax numbers to Funambol clients (lst_hoe02@kwsoft.de, Request #8618). [jan] Fix detecting device information of certain synchronization devices. [jan] Fix warnings when listing sessions with Oracle or PEAR DB session handlers (Bug #8601). [mas] Fix SessionHandler_sql::getSessionIDs() SQL syntax (moreda@allenta.com, Bug #8600). [mas] Fix Horde_SQL::readBlob() on MSSQL (moreda@allenta.com, Bug #8599). [mms] Fix prototypejs regression on Internet Explorer (Bug #6590). ------ v3.3.5 ------ [jan] SECURITY: Fix vulnerability in image form fields that allows overwriting of arbitrary local files. [cjh] SECURITY: Fix validation of "number" type preferences (Bug #8399). [mms] SECURITY: Don't display unknown text parts inline (Bug #8311). [mms] Upgrade prototype.js to v1.6.1. [jan] Use system timezone for timestamps in the logs (Bug #8496). [jan] Fix exporting certain weekday recurrence rules to iCalendar (lst_hoe02@kwsoft.de, Bug #8510). [jan] Work around crash bug in Funambol clients when synchronizing all-day events (Bug #8474). [jan] Fix synchronizing tasks with certain devices (Bug #8506). [jan] Workaround synchronizing of messed up categories in Nokia E phones (Bug #7824). [jan] Fix synchronizing photos with broken Nokia phones (xk3@mompl.org, Bug #7407). [jan] Fix fatal error during synchronization if using certain session handlers (Bug #8443). [jan] Improve synchronizing yearly events with Funambol clients (lst_hoe02@kwsoft.de, Request #7790). [jan] Destroy session when a CLI script ends (Request #8482). [jan] Fix data casting when caching permissions with the DataTree backend (Bug #8435). [jan] Pass user's password to the signup_addextra hook. [jan] Add removeUserDataFromAllApplications API method (adrieder@sbox.tugraz.at, Request #8454). [jan] Catch errors when resetting passwords. [jan] Support resetting passwords with composite authentication. [mms] Fix memcache issue where it took 1 second to release a lock. [mjr] Fix weatherdotcom block always displaying a 5 day forecast (Bug #8357). [cjh] Use streams for file transfers in VFS_ssh2 (jives@jives.ixum.net, Request #8323). [jan] Send notification messages about new signups with confirmation links. [jan] Drop signup_email column from sign-up table. [jan] Show photo in vCard viewer if provided as inline vCard data. [mjr] Fix issue where pref hooks would not be called for preferences marked as shared and defined outside of the Horde scope. [jan] Add configuration whether to show user drop down list or text field in permissions dialog. [jan] Export current locale to the environment. [jan] Fix unfolding of vCard 2.1/vCalendar 1.0 data. ------ v3.3.4 ------ [jan] Fix rendering of addresslink form fields (Bug #8053). [mjr] Fix a botched merge in Horde_Image_gd that was causing an undefined variable notice to be output in the image data. ---------- v3.3.4-RC1 ---------- [mjr] Fix an issue that causing users with expired passwords to be allowed to log in with the LDAP Auth driver. [jan] Properly handle synchronization requests to non-existant databases. [jan] Fix exporting all-day events to Funambol clients (Bugs #4487, #6847). [jan] Quote parameter values in iCalendar data if necessary (Gunnar Wrobel, Bug #7758). [jan] Detect base64 encoded synchronization data from Blackberry devices (Bugs #6995, #6949). [jan] Optionally use Net_DNS for host name lookups (adrieder@sbox.tugraz.at, Request #7374). [jan] Add TLS support to LDAP drivers (web@marlboro.edu, Request #7958). [jan] Add scope and sizelimit parameters to LDAP authentication driver (dom.lalot@gmail.com, Request #7839). [jan] Further improve HTML-to-text filter. [jan] Export recurrence end dates as date-time values in iCalendar data to improve compatibility with external clients (Bug #7846). [jan] Silence errors messages from iconv_substr() (jens@peino.de, Bug #8128). [jan] Don't catch Alt key combinations for access keys on Mac OS. [mjr] Fix bitwise clause generation in the sql and hierarchical sql driver. This fixes issues with Oracle and possibly other RDBMS. [mjr] Correct numerous bugs in Horde_Image dealing with ImageMagick version inconsistencies. [jan] Fix charset conversion in preference hooks (Bug #7489). [cjh] Proactively disable allow_url_include in core.php. [cjh] Add an index on session_lastmodified to the Horde sessionhandler tables. [mjr] Force the use of REQUEST_URI instead of PATH_INFO in Util::getPathInfo() when being served by lighttpd due to issues with case insensitive file systems. [cjh] Add support for SSL connections to MySQL databases (BryanRJ@gmail.com, Request #7972). [cjh] Fix storing of unlocked preferences set by hooks (manuel@mausz.at, Bug #6822). [jan] Highlight color input fields with the color from the picker. [jan] Fix importing vCards that have the charset specified in a MIME part (Bug #7816). [mms] Ensure all input array entries in String::convertCharset() are properly iterated through (Bug #7828, manuel@mausz.at). ------ v3.3.3 ------ [cjh] SECURITY: Escape output in the tag cloud block (found by Gunnar Wrobel ). [cjh] SECURITY: Validate the Horde_Image driver name (found by Gunnar Wrobel ). [cjh] Allow "." in phone number fields (Request #7858). [cjh] Fix the SQL Share driver closing the global database connection improperly when using PostgreSQL (Bug #7825). [jan] Add support for Mozilla Sunbirds snooze properties (Request #7470). [cjh] Try iconv_substr() in String::substr() if it's available (duck@obala.net, Request #7826). [cjh] Avoid warnings in Perms::getPermissionId with PostgreSQL (Marcus Ryan , Bug #7750). [jan] Fix parsing of LABEL attributes in the vCard viewer. ------ v3.3.2 ------ [mms] Fix prototypejs regression on IE (Bug #6590). ------ v3.3.1 ------ [cjh] SECURITY: Add another check to the XSS filter. [jan] Add script to import preferences from SquirrelMail database. [cjh] Allow the password file Auth driver to require a specific group. [cjh] Use YYYY-MM-DDTHH:MM:SS for Alarm date queries (Bug #7580). [jan] Add XPath wrapper to Horde_DOM library. [cjh] Don't use executeMultiple in the SQL Share driver when we might reset the connection in between queries (Bug #7542). [jan] Fix database XML schema to create all lock table fields (Bug #7433). [jan] Fix showing two sidebars after saving the display preference group for the first time (Bug #7475). [jan] Fix sharing with LDAP groups (Bug #6883). [jan] Add javascript event handler for access keys. [cjh] Remove UNSIGNED from PostgreSQL scripts. [cjh] Call preference hooks in the scope of the preference (vlukashov (at) parallels (dot) com, Bug #7445). [jan] Fix resuming synchronization session on server farms (adrieder@sbox.tugraz.at, Bug #7394). [jan] Fix synchronization of tasks with many items (adrieder@sbox.tugraz.at, Bug #7395). [mms] Upgrade prototype.js to v1.6.0.3. [jwm] Fix regression: SOAP wsdl/disco shouldn't require authorization. ---- v3.3 ---- [jan] Fix synchronization issues with Blackberry clients (Bug #6949). [mms] Fix setting the horde user when using application authentication with realms (Bug #6749). [jan] Fix user name conversion with user hooks in the permissions interfaces (Bug #6371). [jan] Provide all settings for the read server in split SQL configuration (Request #7024). [jan] Improve HTML to text filter. [mjr] Hierarchical SQL Share driver now correctly removes all children when removing a share (Bug: 7347). [mjr] Fix an issue with various date/time fields in horde form that was causing erroneous validation errors. [cjh] Sign parameters to go.php with an HMAC based on a new secret key configuration value, to prevent using go.php as an open referrer. [cjh] Make logout tokens only valid for a configurable length of time. -------- v3.3-RC1 -------- [mms] Fix garbage collection handling on SQL session handler backends. [mjr] Change MDB2 sequence names to 'id' in SQL share driver (Bug #7240). [cjh] When a URL is supplied for pass-through after logging in, go to that URL in mobile browsers instead of going to the mobile portal (Bug #6332). [mms] Memcache session handler no longer writes data with a lifetime. [cjh] Add DIMP to the horde LDAP OIDs and hordePerson objectclass (Bug #7243). [mms] Update FCKeditor to v2.6.3. [jan] Use global mailer configuration when sending alarm emails (adrieder@sbox.tugraz.at, Bug #7058). [jan] Reset background colors when resetting the category form (Bug #7226). [jan] Improve Funambol contacts support (Requests #7099, #7100). [jan] Correctly parse GEO tags in vCard 2.1 data (Bug #6563). [jan] Remove Horde portal link from application menus (Bug #7221). [cjh] Create a driver for signups, allowing backends other than DataTree (Duck , Request #7161). [jan] Fix displaying images with the image form field. [mjr] Fix issue with hierarchical SQL share driver that caused permissons to erroneously be denied when the share contained group permissions and was instantiated by a listShares call. [mjr] Fix issue with hierarchical SQL share driver that caused any child shares to be orphaned when the parent share was moved in the hierarchy. [mjr] Fix issue with SQL share drivers that was causing permission checks to fail under certain conditions by no longer explicitly storing owner permissions in the Perms backend. [cjh] Fix overwriting a variable in the tableset_html VarRenderer (Paul Roy , Bug #7120). [mms] Fix MIME encoding when using the ISO-2022-JP charset (Bug #1621). [jan] Fix SQL Share driver not using the correct database when using different databases in Horde applications (Bug #6997). [cjh] Fix SQL portability in Share_sql driver (Bug #7084). [jan] Fix synchronizing large amounts of data split across several SyncML messages. [jan] Add Basque translation (Euskal Herriko Unibertsitatea EHU/UPV ). [cjh] Fix Horde_Lock::getLockInfo (duck@obala.net, Bub #7046). [cjh] Fix SQL portability in Group_sql driver (Bug #7075). [jan] Fix PAM authentication driver, but also mark it as deprecated (Bug #6982). [mjr] Fix issue with native SQL Share driver that caused filtering shares by attributes to fail. [jan] Fix synchronization of event alarms with Funambol clients (Bug #7003). [jan] Correctly detect Funambol clients on Blackberry devices (Bug #6995). [mjr] Remove all user application permissions and group memberships from storage when removing the user from the system (Bug: 6999) [cjh] Call the postauthenticate hook in Auth::setAuth(), and allow the postauthenticate hook to cause setAuth() to fail. Allows postauthenticate to fire on any event, including transparent authentication, that could result in a user being successfully logged in. [jan] Improve attribute support and charset conversion in vCard viewer. [jan] Show photos in vCard object if provided with an URL. [mjr] Remove permissions from storage also when removing a share. [jan] Add Horde_Form fields for string arrays and PGP and S/MIME keys. [jan] Only show Add Permission icons in permissions interface where adding them is possible. [mjr] Fix issue in Horde_Image that was causing erratic results when cropping images. [jan] Fix validation of phone fields marked as required (Bug #6948). [mms] Fix quoting periods in display part of e-mail address (Bug #6899). [mms] Fix error checking when parsing an undisclosed recipients mail header and using an older version of PEAR::Mail (Bug #6930). [jan] Return to portal after editing or deleting blocks directly from there. ------ v3.2.5 ------ [jan] SECURITY: Fix vulnerability in image form fields that allows overwriting of arbitrary local files. [cjh] SECURITY: Fix validation of "number" type preferences (Bug #8399). [mms] SECURITY: Don't display unknown text parts inline (Bug #8311). ------ v3.2.4 ------ [cjh] SECURITY: Escape output in the tag cloud block (found by Gunnar Wrobel ). [cjh] SECURITY: Validate the Horde_Image driver name (found by Gunnar Wrobel ). ------ v3.2.3 ------ [cjh] SECURITY: Add another check to the XSS filter. ------ v3.2.2 ------ [jan] SECURITY: Fix unescaped output in the MIME attachment linking. [jan] SECURITY: Add another check to the XSS filter. ------ v3.2.1 ------ [cjh] SECURITY: Escape item names in the object browser (Bug #6906). [cjh] Select db before queries in MySQL SessionHandler (Bug #6673). [jan] Format messages sent through MIME_Mail in flowed text format. [cjh] Catch errors if the Cache_file backend doesn't have permission to garbage collect (Bug #6895). [cjh] Fix deletion of SQL shares when using split read/write databases (duck@obala.net, Bug #6870). [mms] Workaround broken IE behavior when downloading files with 8-bit filenames (felix5ng@yahoo.com.hk, Bug #129). [cjh] Fix storing of unlocked preferences set by hooks (manuel@mausz.at, Bug #6822). [mms] Allow Horde memcache driver to use UNIX sockets (Bug #6848). [mjr] Various fixes for hierarchical SQL Share driver involving share names, better error checking and logging. [gwr] Added group driver for Kolab. [gwr] Added IMAP based preferences driver for Kolab. [mms] Fix missing timestamp variable in Horde SQL cache driver (keith@ajmani.org, Bug #6839). [cjh] Fix over-zealous preference caching when preferences are requested for a different user (Bug #6820). [mjr] Fix issue in Horde_Image that caused errors when performing certain image operations immediately after an image had been cropped when using the ImageMagick driver. [cjh] Fix order of checks in String::convertCharset (Bug #6794). [mms] Fix parsing of addresses in headers when the RFC 2047-encoded personal part of the address contains address list delimiters (Bug #6747). [cjh] Fix generation of unique keys in configuration for machines too fast for microtime() (mail@dunix-data.de, Bug #6762). ---- v3.2 ---- [jan] Fix synchronization of contacts with some SyncML clients (Bug #6706). [mjr] Fix SQL bitwise comparison issue in native SQL share drivers that affected PostgresSQL (Bug #6751). [cjh] Ensure users' email addresses are well-formed (Bug #6654). [jan] Remove About... link from help viewer. [mms] Update Xinha editor to support Safari 3. -------- v3.2-RC4 -------- [bak] Improvements to WebDAV return codes and implement WebDAV locks [bak] Add Horde_Lock subsystem [mms] Add memcache caching support to all session backends. [cjh] Apply fix for http://dev.rubyonrails.org/ticket/11473 to prototype.js (Request #6590). [cjh] Add a files-based Preferences backend (thomas.jarosch@intra2net.com, Request #6653). [cjh] Correct line-folding of encoded lines in iCalendar data (Gunnar Wrobel , Bug #6555). [cjh] Add a configuration option for whether users can share with groups they aren't members of (thomas.jarosch@intra2net.com, Request #6619). [cjh] Ensure that alarms are created with a NULL alarm_snooze value (michael.redinger@uibk.ac.at, Bug #6183). [cjh] Add an admintools script for creating PEAR::DB sequences manually. [cjh] Improved support for PGP fingerprints (Bug #6363). [jan] Add rpc/ directory for prettified RPC URLs. [jan] Move SyncML anchors out of the DataTree into a separate database table. [cjh] Add beta SQL Permissions driver (duck@obala.net, Request #6150). [cjh] Add beta SQL Group driver (duck@obala.net, Request #6175). [jan] Use wider columns for the SyncML database table to correctly store long UIDs (Bug #5025). [jan] Add "hordeweb" theme. [jan] Add MIME::parseAddressList(). [jan] Add icons to edit and delete blocks directly from the portal. [jan] Allow users to specify login credentials for Horde applications in the preferences. [jan] Add NLS::setLanguageEnvironment() and NLS::setCharsetEnvironment(). [cjh] Fix LDAP authentication (Bug #6450). [jan] Improve synchronization with Funambol clients. [mas] Fix false positive verification of S/MIME messages (Bug #6323). -------- v3.2-RC3 -------- [cjh] Fix Horde_Compress_zip::checkZipData (Bug #6413). [jan] Allow adding attachments to the problem reporting form. [cjh] Make sure that when we used a cached Preferences object, we set the correct scope (Bug #6395). [cjh] Set LC_TIME to C for consistency in date parsing in the SSH2 backend (michael-dev@fami-braun.de, Bug #6396). [cjh] Add experimental native SQL Share driver (duck@obala.net, Request #6109). [cjh] Recognize IE8 in the Browser class (vilius@lnk.lt, Request #6390). [cjh] Don't treat no results as an error in the LDAP Groups driver (asmarre@ull.es, Request #6362). [cjh] Use conf.bak.php for backup files so they are parsed by PHP (Request #6341). [cjh] Add a configuration setting for using pretty URLs (Request #6264). [cjh] Add a method for counting attribute values without returning full objects from the DataTree (duck@obala.net, Request #6289). [cjh] Protect logout links with CSRF tokens. [jan] Fix listing of folders with whitespace in the name using the SSH2 VFS driver (Bug #6227). [jan] Don't indent first line of paragraphs when converting HTML to plain text. [cjh] Add a PHP 5 SoapServer RPC backend. [cjh] Add a method for getting just attributes, instead of full object and tree structure, from the DataTree (duck@obala.net, Request #6209). [cjh] Add a mock Groups driver for sites that don't need Group support (duck@obala.net, Request #6157). [jan] Highlight links in HTML viewer that triggered a phishing warning. [jan] Fix some string parsing on systems that don't have the "en" or "en_US" locales installed (Bug #6194). [jan] Avoid JavaScript popup if a translation for the WYSIWYG editor doesn't exist (Bug #6174). [cjh] Fix autocreation of DataTree parents (almarin@um.es, Bug #6167). [jan] Fix linefolding with multibyte strings in iCalendar library (Bug #6103). [jan] Add multibyte-safe String::wordwrap() method. -------- v3.2-RC2 -------- [jan] SECURITY: Fix privilege escalation in Horde API. [jan] SECURITY: Filter out FRAME tags from HTML messages (CVE-2007-6018). [jan] SECURITY: The XSS filter passes the complete XSS cheat sheet (http://ha.ckers.org/xss.html) now. [cjh] Don't trust HTTP_X_FORWARDED_FOR or any proxied requests when consulting the safe_ips list (Bug #6133). [cjh] Add a PHP 5-only block for putting syndicated feeds on the Horde Portal (duck@obala.net, Request #6107). [cjh] Automate detection of which themes/app combinations have custom icons (Bug #6105). [cjh] Fix listing of current session ids in the memcache SessionHandler (Bug #6083). [cjh] Correct handling of cache misses from the Horde_Cache_sql driver (Bug #6060). [mas] Add support for PGP revocation certificates to Crypt library. [cjh] Provide specific validation errors when datetime Horde_Form fields have a date but not a time, or vice-versa (Bug #5992). [cjh] Read email addresses from subjectAltName property of S/MIME certs (Bug #5986). [cjh] Catch Horde_Block errors when doing ajax updates. [cjh] Allow Horde_Mobile_select to take already-encoded options (Bug #5849). [jwm] Add support in Horde_RPC_soap for handling SOAP endpoints that only expose certain types and/or methods. [jwm] Make the SOAP service name in Horde_RPC_soap configurable. [jwm] Add basic logging of SOAP calls (method name and args, elapsed time, bytes sent in response). [cjh] Support LDAP password expiration when using Sun/Fedora Directory Server (marco@csita.unige.it, Request #6012). [cjh] Remove the wrap attribute from preference textarea tags (Bug #6024). [cjh] Recommend and default to SSHA hashed passwords. [jan] Fix rendering of messages in some charsets that are only supported by iconv (Bug #5962). [jan] Display WYSIWYG editor with correct language. [jan] Fix creating of sub groups (Bug #5970). [jan] Fix linking of URLs encapsulated in angle brackets (Bug #4946). [jan] Fix edge cases of CSV file imports (Bugs #3839, #4025). [mms] For SessionHandler drivers, don't write to backend if the session data did not change while loading the current page. [cjh] The Auth:: package no longer depends on the PHP mhash extension for some encryption types. [cjh] Add stream support to some VFS backends (Request #5913). [jan] Add client code to JSON-RPC class and implement JSON-RPC 1.1. -------- v3.2-RC1 -------- [jan] Apply user name hooks when editing share permissions (steinkel@ctinetworks.com, Bug #5844). [jan] Fix some date handling with dates outside the unix epoch (Bug #5893). [jan] Fix fixed portal blocks (Bug #5853). [jan] Fix Share caching (Bug #5748). [cjh] Fix deleting categories (Gunnar Wrobel , Bug #5873). [cjh] Import dhtmlHistory.js from DIMP into Horde core. [cjh] UTF-8-encode DNs in the LDAP Groups driver (patrick.abiven@apitech.fr, Bugs #4692 and #4918). [mjr] Addition of an Effects API to the Horde_Image package, including a number of image effect plugins. [jan] Add country list form field. [cjh] Add example logrotate configuration (Martin Fraer ). [cjh] Add LDAP ACL definition for preferences (Martin Fraer ). [cjh] Add an index on horde_datatree_attribute.attribute_value to improve DataTree performance (Andrew Morgan ). [jan] Add SQL upgrade scripts. [jan] Fix escaping of parenthesis in PDF documents (PEAR Bug #12092). [jan] Fix alarm notification script (Bug #5660). [jan] Fix PDF generation with some locales (Gunnar Wrobel, Bug #4094). [jan] Move all application-specific hook examples to the applications' config/ directories. [jan] Fix SMTP configuration being set to "Best available authentication" (Bug #5679). [jan] Add bind parameters to LDAP account portal block configuration (Request #5705). [cjh] Fix login screen enter key behavior in some circumstances (Bug #5696). [mjr] Add a new block for displaying a tag cloud that works across all Horde applications implementing a searchTag api. [cjh] Use the Silk flag icons from http://famfamfam.com/lab/icons/flags/ for all flag sets (Bug #5681). [cjh] Fix generation of UIDs with PHP 5.2+. [cjh] Add a JSON-RPC Horde_RPC backend (joey@joeyhewitt.com). [cjh] Allow selecting any available sound when creating alarms as an administrator (Request #5619). [cjh] Fix updating of last_maintenance preference with PHP 4 (Bug #5111). [cjh] Allow considering all IPs to be "safe" for encryption operations, passphrase entry, etc., when using SSL hardware or other secure environments (adrieder@sbox.tugraz.at, Request #5568). [cjh] Fix CSRF protection with Horde_Form objects submitted with preserve(). ---------- v3.2-ALPHA ---------- [cjh] Centralize sounds for audio alarms in Horde. [cjh] Include CSRF protection when using Horde_Form Tokens (Request #4492). [cjh] Add first_week_day preference and use it in the calendar widget (Bug #1729). [cjh] Cache permissions with Horde_Cache (duck@obala.net). [jan] Add configuration option for safe IP subnets. [cjh] Allow turning off a user's ability to edit share permissions (Request #4054). [cjh] Consolidate color pickers used for Labels and in Horde_Form (Bug #5112). [cjh] Log sending of problem report emails (Otto.Stolz@uni-konstanz.de, Request #5461). [cjh] Improve support for dates before 1970 and after 2038 (Bug #3741). [mms] Add option to send MIME messages in a format that may allow broken MUAs to handle 8-bit filename data. [cjh] Add Tango Blue (xconspirisist , roti@al.pmmf.hu, Request #2795) and Silver Surfer (Daniel Dembach ) themes. [mms] Created a Horde-wide object to access a singlet memcache configuration. [cjh] Test for PCRE UTF-8 support with extension tests (thomas.jarosch@intra2net.com, Bug #1052). [jan] Add category field to Horde_Form. [cjh] Better detection of Konqueror JavaScript features (thomas.jarosch@intra2net.com, Request #5372). [cjh] Support the allow_multi parameter when displaying email address form types (thomas.jarosch@intra2net.com, Request #5356). [cjh] Add Scriptaculous and RedBox to Horde. [mms] Added sql driver for Horde_Cache::. [mms] Prevent tooltips from scrolling off screen (michael.sheldon@credativ.de, Request #3958). [jan] Add portal block to verify EU VAT identification numbers. [mms] Preserve URL anchor information when performing login. [jan] Add method to fetch public key by email address from key server. [jan] Add parameter for a temporary directory to the VC svn driver (meyer@mesw.de, Request #5051). [jan] Change VC library to support open_basedir restrictions (meyer@mesw.de, Request #5051). [cjh] Added a query for checking existance of a user to the custom SQL Auth driver (Request #5151). [jan] Add button to the setup screen to check for newer versions. [mas] Add MIME Viewer for WordPerfect documents. [mms] Use lzf compression to compress Horde_SessionObjects:: data in the session. [cjh] Replace google popup javascript searching with Google Ajax Search. [jan] Add datetime variable type to Horde_Form. [jan] Add Horde_Alarm library for reminders, alarms and notifications across all applications with pluggable notification methods. [jan] Add context renderer to Text_Diff package. [jan] Add MIME_Mail class to simplify creation and sending of MIME messages. [cjh] Horde_Share now has a driver system with DataTree and Kolab backends (Gunnar Wrobel , Request #4263). [cjh] Remove RPC_rest backend. [cjh] Add DELETE support to the webdav RPC implementation (Håvard Wigtil , Request #4721). [cjh] Add a Horde-wide HTTP proxy config setting (Request #1039). [mms] Use the geoip PECL extension if available. [cjh] Add preferences change hooks that are called when preferences are set to new values (Request #4343). [cjh] Add Active Directory support to the LDAP account information driver (air2@dds.nl, Request #3512). [cjh] Add a finger driver to the account information block (difosfor@hotmail.com, Request #3546). [cjh] Rewrite the Prefs code to keep the same Prefs object through multiple scope changes, instead of re-loading the Horde prefs, or prefs for a scope that had already been loaded. Fixes bugs when making changes to preferences and then switching scopes again (Bug #2838). [cjh] Switch from hook functions for every group to a single hook function for all groups, allowing more dynamic Group_hooks implementations (dorm@dorm.org, Request #4324). [jan] Allow Kolab users to login with both, UID or mail address (wrobel@gentoo.org, Bug #1317). [cjh] Switch between 'icon' and 'iconopen' images when toggling Horde_Tree sections (Bug #2576). [cjh] Add a Horde_Form_Action for setting the cursor position in any text field (Request #4431). [cjh] Provide a link for dialing phone numbers if the "telephony/dial" API method is present (thomas@gelf.net, Request #3241). [jan] Add support for PUT method to WebDAV server (d.bussink@student.utwente.nl, Request #3032). [jan] Add PHP 5 support for Kolab (wrobel@gentoo.org, Bug #4062). [jan] Rewrite PAM authentication driver to use PAM extension from PECL. [mas] Implement IMAP_ACL_rfc2086::canEdit() for cases when the user is asking about their own rights. [mms] Correctly encode MIME parameter values via RFC 2231. [mms] Add method to do RFC 2231 encoding. [jan] Allow to set link target for "link" preference types. [cjh] Move developer and administrator tools into seperate PEAR packages that will be available from pear.horde.org. [mas] Conform to WCAG 1.0 Priority 2/Section 508 accessibility guidelines. (Request #4080) [jan] Add SMIL MIME viewer. [jan] Add support for virtual host based configuration. [jan] Add File_PDF::setTextColor() (PEAR Request #1767). [jan] Add File_PDF::setFontStyle() (d.baechtold@unico.ch, PEAR Request #5230). [jan] Add encoding parameter to XML_SVG_Document (PEAR Request #7461). [jan] Add SMPP driver to Net_SMS package (Ian Eure , PEAR Request #5101). [jan] Add support for symmetric PGP encryption to Crypt library. [jan] Add option to limit file sizes in file and image form fields (Request #2155, vilius@lnk.lt). [jan] Add caching for shares. [cjh] Add an audio MIME_Viewer so that audio files are clickable and handled immediately by the browser. [cjh] Add Horde_Form_Type_phone as a parent for Horde_Form_Type_cellphone. [jan] Add caching for groups. [cjh] Allow dropping application (or other custom-purpose) configuration files into config/registry.d/. [cjh] Help now has a tree view of topics and is searchable (Request #2452). [cjh] translation.php now works with PHP 5 (Bug #3539). [jan] Highlight new configuration items in the configuration interface (Request #3868). [cjh] Add Shibboleth transparent authentication driver (Cassio Nishiguchi ). [cjh] Add native email address validation to Horde_Form_Type_email based on http://iamcal.com/publish/articles/php/parsing_email. [jan] Add multidomain support for Kolab servers (tokoe@kde.org, Request #3579). [cjh] Deprecate htmlarea in favor of xinha. [mms] Add VFS SSH2/SFTP driver (Cliff Green ). [mjr] Move the Horde_Config_Node and related classes out of Horde_Config and into it's own Horde_DOM package. [mjr] Add support for Horde_Share to the Net_IMSP package. [jan] Add connection pooling support with memcache extension 2.0.0 (adrieder@sbox.tugraz.at, Request #3213). [jan] Add memcached driver to the Horde_Cache package (Duck ). [cjh] Add phpGroupWare/eGroupWare compatibility driver to Horde_RPC that allows mapping xml-rpc methods into Horde applications (Request #2886). [cjh] Add _horde_hook_post_pushapp for doing actions directly after $registry->pushApp() succeeds. [jan] Update portal block content in the background instead of reloading the whole portal periodically. [mdj] Add support for split read/write databases. [mdj] Add failover support for database backends. [jan] Add configuration option to require users to confirm email addresses added to their identities. [cjh] Add a SpellChecker package. [cjh] Have Horde::addScriptFile() check for a non-PHP version of scripts to avoid javascript.php whenever possible. [cjh] Add SERIALIZE_JSON mode with code from PEAR's Services_JSON. ------ v3.1.9 ------ [jan] SECURITY: Add another check to the XSS filter. ------ v3.1.8 ------ [cjh] SECURITY: Escape item names in the object browser (Bug #6906). [jan] Fix large messages being rendered empty with PHP 5.2 (Bug #5792). ------ v3.1.7 ------ [cjh] SECURITY: Fix arbitrary file inclusion through abuse of the theme preference (CVE-2008-1284). ------ v3.1.6 ------ [jan] SECURITY: Fix privilege escalation in Horde API. [jan] SECURITY: Filter out FRAME tags from HTML messages (CVE-2007-6018). [jan] SECURITY: The XSS filter passes the complete XSS cheat sheet (http://ha.ckers.org/xss.html) now. [jan] Apply user name hooks when editing share permissions (steinkel@ctinetworks.com, Bug #5844). [jan] Fix fixed portal blocks (Bug #5853). ------ v3.1.5 ------ [cjh] Fix identity javascript when some fields are disabled (veikko@immonen@otaverkko.fi, Bug #5595). [cjh] Disable the Turkish locale if using PHP 5 (see http://bugs.php.net/bug.php?id=35050). [jan] Fix selecting the language on the login screen (Bug #5098). [jan] Fix searching for single quotes in email headers (qa@cpanel.net, Bug #4854). [jan] Fix portal layouts with more than one horizontally expanded block per row. ------ v3.1.4 ------ [jan] SECURITY: Correctly quote file names in cleanup script for temporary files. [jan] Fix RPC authentication on CGI SAPIs. [jan] Detect unencrypted PGP messages. [jan] Correctly quote file names in cleanup script for temporary files. ---------- v3.1.4-RC1 ---------- [jan] SECURITY: Fix an XSS vulnerability in the language selection. [jan] Complete Cyrus virtual domain support in cyrsql driver (Vilius Sumskas , Request #4967). [jan] Add option whether to strip domains from usernames in the account block (Request #4955). [jan] Fix email lists not being validated under certain conditions (Bug #4834). [cjh] Add a REST-ful preferences interface. [cjh] Faster DataTree-to-SQL History migration script (josh@endries.org, Request #4732). [cjh] Improved automatic webroot detection (Ben Klang, Request #4126). [cjh] Rewrite and fix the OCI8 SessionHandler (Bug #3452). [cjh] Allow signup hooks to override the user_name and password fields (thomas@gelf.net, Request #2904). [cjh] Fix creation of mailbox quotas by the Auth_cyrus driver (pascal@vmfacility.fr, Bug #4678). [cjh] Add "Save and Finish" to the share edit window (webmgr@muskingum.edu, Request #4307). [cjh] Let mailto: and anchor (#) links through Horde::externalUrl (Bug #3079). [cjh] Add smbclient version of the SMB Auth class (larry@wimble.biz, Request #4338). [cjh] Remove problematic "data descriptor" segment from generated ZIP files (reitsma@denison.edu, Bug #4670). [cjh] Strip accesskeys from menu tooltips when only showing icons (Bug #4667). [jan] Fix saving files in the root directory of an SQL VFS backend (Bug #4652, Ben Klang ). [jan] Fix displaying all maintenance tasks to be confirmed at once (Bug #4377). [cjh] Fix return format of DataTree_null::getByAttributes() (thomas.jarosch@intra2net.com, Bug #4651). [jan] Support departments in vCard's ORG properties (martin@matuska.org, Request #4285). [cjh] Rename Auth_sasl backend to Auth_peclsasl to avoid conflicts with PEAR's Auth_SASL (Bug #4547). [cjh] Implement handling of vTimezones in iCalendar data (Carl Thompson , Bug #4399). [cjh] keybindings.js now works with Safari/KHTML. [jan] Avoid recursive folder creation when sharing Kolab folders (michael.sheldon@credativ.de, Bug #4325). [jan] Add Kolab specific account block driver to support special Kolab users (mzizka@hotmail.com, Request: #4119). [mms] Only dim below the last signature line of input text in the dimsignature Text_Filter driver. ------ v3.1.3 ------ [cjh] SECURITY: Validate GET-based URL parameters provided to Horde's index.php. [jan] Support importing of combined date/time fields (Bug #3116). [jan] Log a warning if using settings that break sessions. [jan] Fix parse error that broke SyncML synchronization (Bug #4168). [jan] Support Kolab group ACLs (csacca@thecsl.org, Request #2270). [jan] Fix unserialize() errors in session viewer (Bug #3586). ------ v3.1.2 ------ [cjh] SECURITY: Remove unused image proxy code from dereferrer. [cjh] SECURITY: Close XSS problems in dereferrer (IE only), help viewer and problem reporting screen. [cjh] Handle errors generated during XML-RPC calls properly (Ben Klang , Bug #4097). [jan] Add additional indexes to preference table (j.benoit@free.fr, Bug #4079). [jan] Fix preference cache (Bug #4079). [jan] Add configuration option to disable GET-based sessions. [jan] Fix preferences access for special Kolab users (wrobel@gentoo.org, Bug #4049). [mms] Fix setting default charset for non-MIME messages (Bug #3804). [jan] Add several methods to manipulate groups and shares to Horde's API. [jan] Return serialized PHP values through the REST interface if passing a restContentType parameter of 'application/x-httpd-php'. [cjh] Only allow users to assign Share permissions for groups they are members of. [jan] Allow to disable VFS backends in the applications' configurations. [mms] Update the MIME Content-Type charset parameter in a MIME message when we convert the contents for viewing in the browser (Bug #3729). [cjh] Fix Horde_Form_Type_assign javascript (Bug #3740). [jan] Add upgrade scripts for Oracle. [cjh] Include PATH_INFO whenever QUERY_STRING is requested in Horde::selfUrl() (Bug #3703). [jan] Add generic SQL upgrade script (Daniel A. Ramaley ). ------ v3.1.1 ------ [cjh] SECURITY: Fix remote code execution vulnerability found by Jan Schneider. [cjh] Fix export and synchronization of events across daylight saving time changes. [jan] Add proper locking to mysql session handler (Bug #3660). [cjh] ie.css is not necessary for IE7, so rename appropriately (Bug #3671). [jan] Fix quota support for some VFS drivers (Bug #3647). [cjh] Better Opera Mini detection (Bug #2961). [jan] Fix menu wrapping with Kolab and Purple theme (Bug #3594). ---- v3.1 ---- [cjh] Remove bogus Content-Location header in the WML Mobile renderer (Bug #3476). [jan] Add option to block Kolab authentication after failed logins (tokoe@kde.org, Request #3474). [jan] Allow to set height of iframe portal block (tevans@tachometry.com, Request #3504). [cjh] Update ToolTips JavaScript object to allow tooltips on non- elements. [mms] Sort an IMAP_Tree object by display name, not full mailbox name. [mas] Make sure database portability options are applied in History module. (Bug #3482) -------- v3.1-RC3 -------- [jan] Make sure that Kolab users always have the same user name (Bug #1317). [jan] Fix moving objects with Kolab drivers (tokoe@kde.org, Bug #2811). [jan] Add reset button to image form fields. [jan] Fix selection of default identity (Bug #3416). [mas] Add Hebrew translation. [mas] Add support for RFC 4314-style IMAP ACLs. [mms] Correctly encode 7-bit MIME messages with NULL characters (Bug #3395). [jan] Hide applications with status 'notoolbar' from options menu (Bug #3383). -------- v3.1-RC2 -------- [jan] Add Khmer translation (Leang Chumsoben ). [mms] Handle quoted text when parsing MDN requests (Bug #3340). [ben] Better support for MS-SQL. [jan] Show correct address in last-login message if connecting through a proxy (Bug #3288). [mms] Allow admin to disable browser string checks (Bug #3282). [jan] Correctly encode email group names (Bug #3234). [cjh] Add a display method for hourminutesecond form fields (Bug #3165). [cjh] Horde's preferences now are referred to as Global Options so the user doesn't need to know what Horde is, and always appear at the top of lists of apps for which preferences are available. [jan] Add upgrade instructions (Kevin Myer kevin_myer@iu13.org, Bug #3222). [cjh] Applications which do not have a config/prefs.php file no longer appear in lists of applications to set options for to avoid confusion. -------- v3.1-RC1 -------- [cjh] Make the lock directory for the memcached SessionHandler configurable (Bug #3120). [mms] Update Text_Flowed:: to support RFC 3676. [cjh] Fix output escaping of Horde_Form_Type_cellphone in UI_VarRenderer_html. [cjh] Allow choosing [None] as a database for $conf['sql'] (Bug #2754). [jan] Add Icelandic translation (Bjorn Davidsson ). [mms] Work around broken imap_8bit() implementation in MIME::quotedPrintableEncode (Bug #2975). [mms] Add garbage collection to Horde_Cache. [cjh] Fix Group::listAllUsers (Carlos Pedrinaci, Bug #2937). [jan] Add high contrast theme (tmerritt@email.arizona.edu, Request #1598). [jan] Keeps sidebar expansion state across sessions (Request #1564). [jan] Add configuration for mail domain used for problem reports (dustin@ywlcs.org, Request #1376). [cjh] Add dynamic table re-sorting through javascript. [cjh] Inspect method signatures so that the REST driver isn't dependent on the order of GET parameters. [cjh] Add horde/getPreference and horde/setPreference API methods. [cjh] Add a list of active users and active sessions to the admin area. [cjh] Add unobtrusive javascript tooltips based on the title attribute. [jan] Move sidebar collapse/expand button below the menu bar (Oliver Kuhl ). [jan] Add Ideas theme (Roel Gloudemans ). [cjh] Move Horde_History data to its own SQL table (Bug #2298). [jan] Add Horde_Form_type_figlet for CAPTCHA fields with figlet fonts. [jan] Add Horde_Form_Type_dblookup for form fields with database lookups (Request #322). [jan] Add configuration to disable "About" links in help windows ("Matthew M. Gamble" ). [cjh] Allow sending problem reports to a ticket system using the tickets/addTicket API call (Bug #1917). [cjh] Define RTL styles via an additional stylesheet. [cjh] Usability improvements to the identities management page (Bug #1846). [ben] Add LDAP support to Group package. [cjh] Add SMB driver to VFS package. [cjh] Allow creation of expiring accounts in LDAP (Roel Gloudemans ). [cjh] Add configuration option to search for the user's DN in the Prefs_ldap driver (Bug #1786). [jan] Allow to specify the objectclass for new users added through LDAP (Roel Gloudemans ). [jan] Add password expiration and password encryption to LDAP authentication driver (Roel Gloudemans ). [jan] Add permissions to restrict number of portal blocks. [jan] Add configuration for fixed portal blocks. [jmf] Add audio notification listener, make portal handle audio notifications by blocks (e.g. the IMP folder summary). [mms] Cache certain registry data to prevent unneeded file loading/parsing after the initial login. [mas] Add support for counting authenticated sessions via SessionHandlers. [cjh] Re-work Tabs so that background images can be used in creative ways. [jan] Add "My Account Information" block that mimics the Accounts module. [jan] Improve rendering for right-to-left languages (Amirkabir MetaNET Ltd.). [jan] Add support for arbitrary, non-boolean permission values. [ben] Add alternate_login and redirect_on_logout features. [jan] Add generic SMTP driver to Net_SMS package (Ian Eure ). [mjr] Net_IMSP will now automatically create user's default addressbook if it does not already exist instead of just complaining about it. [cjh] Add select all, none, and invert optionally to Horde_Form_Type_set fields (Duck ). [cjh] Preferences overview is now built with a definition list (
    ) styled with CSS. [jan] Add sort() method to Horde_Tree class. [mdj] Change any output of and tags to and for better accessibility support. [jmf] Allow Horde templates to include application blocks. [jan] Add extended forecasts to weatherdotcom Block (Rick Emery ). [cjh] Allow for arbitrary attribute filters when listing or counting Share objects (Duck ). [cjh] Add DataTree::getSortedTree() (Duck ). [mjr] Support for imtest authentication added to Prefs_imsp. [cjh] Add REST RPC driver (srrafa@usc.es, Bug #1500). [cjh] Add support for fetching the highest and lowest ids in any DataTree group (Duck ). [cjh] Add DataTree::sortByAttributes() for sorting DataTreeObjects based on their attributes (Duck ). [mjr] Initial support added to Net_IMSP for imtest driver (provides persistent IMSP connections using Cyrus imtest utility). [jan] Add map links to UK and Australian address fields (turba.list@suborbit.com, Bug #1461). [mms] Detection of "phishing" tactics in the HTML MIME_Viewer (Todd Merritt , Bug #1434). [mms] Text_Flowed package now correctly handles multibyte characters. [mms] Maintenance confirmation pages now rendered via Horde_Template (Vilius Sumskas ). [jan] Allow to specify charset of imported CSV files. [jan] Add File_CSV package. [jan] Show application names in permissions administration. [jmf] Allow the auth backend to request a password change, support expiring password in the SQL backend. [cjh] Show menu children for every application with preferences under Options in the sidebar menu (Bug #1058). [mms] Allow individual MIME_Viewers to override the Content-Disposition MIME parameter and force viewing inline. ------- v3.0.12 ------- [cjh] SECURITY: Validate GET-based URL parameters provided to Horde's index.php. ------- v3.0.11 ------- [cjh] SECURITY: Remove unused image proxy code from dereferrer. [cjh] SECURITY: Close XSS problems in dereferrer (IE only), help viewer and problem reporting screen. ------- v3.0.10 ------- [cjh] SECURITY: Fix remote code execution vulnerability found by Jan Schneider. ------ v3.0.9 ------ [cjh] Fix showstopper bug in Horde_Form select fields (Bug #3123). ------ v3.0.8 ------ [cjh] When deleting an identity, don't show the deleted identity in the default identity select dropdown on the next page load. [cjh] Fix escaping of data in the preferences templates. [cjh] Fix escaping of data in the data import templates. [cjh] Fix output escaping of Horde_Form_Type_cellphone in UI_VarRenderer_html. [cjh] SECURITY: Close several XSS problems in the share edit window. [jan] Fix weather.com portal block. ------ v3.0.7 ------ [jan] SECURITY: Fix XSS vulnerabilities in gzip/tar and css MIME viewers. [cjh] Add missing COMMIT in MySQL SessionHandler driver (dgehl@inverse.ca, Bug #2731). ------ v3.0.6 ------ [jan] Pass all URL parameters where linking email addresses (Request #1530). [jan] Show Word viewer content with correct charset (sgrondin@csbf.qc.ca, Bug #2737). ---------- v3.0.6-RC1 ---------- [cjh] Fix transactions and binary data in PostgreSQL session handler (cbs@cts.ucla.edu, Bug #2749, #2789). [jan] Fix sidebar menu layout for Opera (Bug #2722). [cjh] Add
     to supported help tags (vijay.mahrra@es.easynet.net,
          Bug #2633).
    [cjh] Fix validation on ipaddress Horde_Form fields (Bug #2583).
    [cjh] Add Auth::getAuthDomain() (Bug #2573).
    [mjr] Add ability to enable/disable IMSP globally via configuration settings.
    [jan] Fix calendar popup with Safari browsers (t.zell@gmx.de, Bug #2448).
    [cjh] When using CGI PHP, SCRIPT_NAME may contain the path to the PHP binary
          instead of the script being run; use PHP_SELF instead (Bug #2401).
    [jan] Fix sharing with groups if using group hooks (Bug #2292).
    
    
    ------
    v3.0.5
    ------
    
    [mms] Fix VFS's autocreatePath() for directory paths containing the root
          directory.
    [jan] Fix cyrsql authentication driver with unixhierarchysep enabled
          (sgrondin@csbf.qc.ca, Bug #2367).
    [mms] Fix nested IMAP AND searches.
    [mms] In sql VFS driver, allow the use of '/' at the beginning of a path to
          indicate the base directory.
    [jan] Fix returning to last page after sending problem report (Bug #2350).
    [mms] Fix a bug that caused hook code to be run unnecessarily after a user
          is already logged in.
    
    
    ----------
    v3.0.5-RC2
    ----------
    
    [cjh] Fix a far-reaching DataTree bug in loading parent ids (Bug #2203).
    
    
    ----------
    v3.0.5-RC1
    ----------
    
    [jan] Add Bosnian translation (Vedran Ljubovic ).
    [cjh] Let Horde_Tree handle all indent calculation based on parent/child
          relationships (Bug #2198).
    [cjh] Add initial LDAP SessionHandler driver.
    [cjh] Use row-level locking or transactions where possible to avoid
          session corruption in SessionHandler (Bug #1580).
    [mms] Add the memcached SessionHandler:: driver (Rong-En Fan ).
    [mms] Fix verification of MIME strings with escaped quotes (Bug #2168).
    [jan] Fix generation of free periods in free/busy code with overlapping events.
    [jan] Don't show Options button in problem reporting page.
    [jan] Add Util::realPath() method.
    [mas] Include version numbers for applications on Admin Setup screen. (Bug
          #1420)
    [mas] Change IMAP Auth driver to use imap/notls by default in non-DSN mode to
          match DSN mode.
    [mas] Add tls and self-signed certificate configuration options to IMAP Auth
          driver. (Bug #1357)
    [cjh] Recognize Opera 8+ as providing advanced features (Bug #2066).
    [cjh] Fix reading of binary files on Windows in VC_svn (Bug #2036).
    [mas] Fix SQL 'LIKE' case-insensitive comparison. (Bug #2030)
    [jan] Allow charset aware IMAP searches.
    [jan] Fix Google search block for non-ascii characters (Bug #1329).
    [jan] Add quick-install instructions.
    [jan] Improve performance of several framework packages.
    [mms] Fix MIME_Contents:: caching in PHP 5 (Bug #1410).
    [jan] Fix VC SVN backend to support user names with spaces
          (shimmanning@gmail.com, Bug #1919).
    [cjh] Escape HTML in identity names (Bug #1910).
    [mas] Use updated PostgreSQL function names.
    [ben] Update application list in horde's LDAP schema
    [cjh] Enforce maxlength restrictions in Horde_Form validation (Bug #1895).
    [jan] Disable weather.com Block if not configured.
    [cjh] Include sourceroot in VC cache keys (Bug #1783).
    [jan] Add SQL script and instructions for MSDE databases (Bugs #1862, #1870,
          jeff@image-src.com).
    [jan] Allow portal blocks to be larger than two column/rows (Bugs #1189, 1632).
    [jan] Add SMTP authentication to problem reporting (Bug #1128).
    [jan] Support help files in admin directory with translations.php (Bug #1344).
    [jan] Fixed SQL binding for ODBC and MSSQL drivers (Bug #1816).
    [jan] Add configuration option to set location of MIME magic database.
    [mms] Make sure headers in a MIME_Part are encoded with the same character
          set used in that MIME_Part (Bug #1591).
    [mms] Add List-Headers listed in RFC 2369 to the list of MIME Headers that
          can only appear once in a single header (Bug #1766).
    [cjh] Fix typo in parsing of FREEBUSY data (Bug #1590).
    [jan] Support SQLite and Oracle in all SQL backend configurations.
    [cjh] Use bind variables in the Auth, VFS, and SessionHandler SQL drivers,
          and in scripts/remove_prefs.php (selsky@columbia.edu, Bugs #1665,
          #1666, #1667, #1668, #1677).
    [cjh] session_set_cookie_params() expects a relative timeout; setcookie wants
          absolute. Go back to a configinteger for $conf['session']['timeout'] and
          add time() to that value in setcookie() calls (Bugs #1302, #1658).
          THIS MAY BREAK CONFIGURATIONS SET TO USE PHP CODE. MAKE SURE TO UPDATE
          YOUR $conf['session']['timeout'] SETTING AFTER UPGRADING.
    [cjh] Use bind variables in the Prefs and Token SQL drivers
          (selsky@columbia.edu, Bugs #1652, #1653).
    [mms] Prune expanded folders that no longer exist in IMAP_Tree (Bug #1517).
    [cjh] Don't try to compress output if ZPS compression is on (Bug #1626).
    [cjh] If an app only has one prefGroup, always show that prefGroup instead
          of showing an overview screen with only one entry.
    
    
    ------
    v3.0.4
    ------
    
    [cjh] Use fully qualified URLs in the AnselImage HTMLArea plugin (Bug #1259).
    [cjh] SECURITY: Close XSS when setting the parent frame's page title by
          javascript.
    [blc] Add PostgreSQL upgrade script (Brad Witte ).
    [mjr] Fix Net_IMSP to properly handle multiple lines in addressbook fields.
    [jan] Fix MIME decoding of strings that contain "%" in multibyte sequences
          (Bug #1423).
    [cjh] Control space under the menu bar with a themeable style (Bug #1421).
    [cjh] Fix Horde_Tree with the multiline option so that row styles extend over
          the whole height of the row.
    [cjh] If configuration files that have a .dist version are missing,
          Horde_Test::configFilesMissing() will copy the defaults over if Horde
          can write to the filesystem (Bug #1015).
    [cjh] Fix AnselImage HTMLArea plugin (Bug #1470).
    [cjh] Just retrieve uid when listing users in the LDAP Authentication driver.
    [cjh] Add choraPrefs to the hordePerson LDAP schema (Bug #1452).
    [cjh] 'rootdn' is not required for LDAP preferences (Bug #1453).
    [mms] Fix IMAP thread creation when the base level contains more than one
          message.
    [jan] Allow vCards with lowercase field descriptors.
    [jan] Improve tar/gzip MIME viewer to better show unzipped content.
    [mjr] Better error handling in Net_IMSP.
    [mms] Speed improvements and sorting fixes for IMAP_Tree.
    [mms] IMAP_Tree now handles non-uppercased 'INBOX' strings returned from the
          mail server (Bug #199).
    [mms] Rebuild certain internal MIME_Part data when retrieving from a cache.
    [jan] Show database specific connection parameters in configuration screen.
    [mms] IMAP_Tree now correctly updated when subscribing/unsubscribing from a
          mailbox (Bug #1111).
    [mms] Make IMAP searches of non-"standard" headers work with the NOT directive
          (Bug #1368).
    [jan] Fixed double line numbers in Source-highlight MIME viewer (Bug #1383).
    [mms] Fix IMAP_Thread when dealing with the first message in the mailbox
          (Bug #1257).
    [cjh] Fix menu heights in Safari.
    [jan] Catch errors from configuration files to avoid blank pages.
    [jan] Support mime_magic extension again if fileinfo is not present.
    
    
    ------
    v3.0.3
    ------
    
    [mjr] Net_IMSP now correctly handles addressbook names containing spaces
          (Bug #1286).
    [cjh] Implement clear() in the LDAP prefs driver (Bug #1335).
    [cjh] Don't list uninstalled applications as initial_application options
          (Bug #1324).
    [jan] Fix postauthenticate hook, not completely denying access after a failed
          login (Bug #1320).
    [jan] Checkboxes in portal block setup forms are correctly checked now
          (Bug #1247).
    [mms] Allow IMAP searches to work on headers with multiple entries
          (kolb@bitlab.hu) (Bug #1330).
    [mms] Correctly sort INBOX subfolders in IMAP_Sort (Bug #1291).
    [cjh] Turn off Form Tokens in the configuration interface.
    [jan] Sort user and group lists in permissions interface (Bug #1305).
    [jan] Allow to enter PHP code in the session timeout configuration (Bug #1302).
    
    
    ----------
    v3.0.3-RC1
    ----------
    
    [mms] Fix bug in Text_Flowed where unquoted lines could not be flowed.
    [cjh] Fix logic problems with the MySQL and OCI8 session handlers that
          prevented them from handling restarting a session cleanly (Bug #1097).
    [cjh] Fix persistence of $conf['mailer']['params']['auth'] in the Setup UI
          (Bug #1287).
    [jan] Improve performance of DataTree operations like reading email message
          histories.
    [jan] Log successful logins and logouts with the NOTICE level (Vilius Sumskas
          ).
    [cjh] Encode HTML entities in Horde_Form_Type_longtext display (Bug #1267).
    [mms] Fix session handling to ensure variables are persistent across function
          calls (Gary Windham ).
    [mms] Improvements to WebCPP MIME_Viewer rendered output.
    [mms] More fixes for URLs with '&' when passing through the sanitizer.
    [jan] Make wrapping menus looking nicer in Gecko and KHTML based browsers.
    [jan] Fix MIME viewer for gzip files that don't contain tar files.
    [cjh] Fix visibility of  tags inside smallheader blocks for the Cornflower
          theme (Bug #1206).
    [cjh] Do not cache javascript served via services/javascript.php (Bug #1140).
    [cjh] Fix management of categories that contain quotes (Bug #1202).
    [cjh] Handle addresses that are already surrounded by quotes in
          MIME::_rfc822Encode() (Bug #1143).
    [cjh] Fix VC_svn's handling of directory names with spaces (Bug #1123).
    [cjh] Fix caching logic that was causing VC to not properly refresh objects in
          a timely manner.
    [jan] Allow to set fixed table cell widths in WYSIWYG editor.
    
    
    ------
    v3.0.2
    ------
    
    [cjh] Make sure not to throw errors when bad emails are supplied in
          services/problem.php (Bug #1070).
    [jan] Fix wrong charset of refreshed menu frame if not using UTF-8 (Bugs
          #1052, #1055).
    [jan] Fix left menu tree collapsing after each refresh (Bug #1072).
    [jan] Fix sidebar being loaded twice if not using cookies (Bug #1076).
    
    
    ------
    v3.0.1
    ------
    
    [jan] Test for session.auto_start.
    [mms] Fix parsing of header with undisclosed-recipients (Bug #1057).
    [cjh] Add a browser quirk for browsers that don't support overflow:hidden in
          table cells (KHTML).
    [jan] Fix application links if not using cookies (Bug #1029).
    [mms] Fix disabling of maintenance confirmations (Bug #1027).
    [cjh] Fix alignment of Help window header in MSIE (Bug #1023).
    [cjh] Fix the Horde_Block graphics to be indexed, not grayscale (Bug #1051).
    [cjh] SECURITY: Close several XSS vulnerabilities.
    [mms] Make sure external URL's work correctly when the URL contains '&' as
          the delimiter.
    [cjh] Fix infinite loop with Auth_application driver (Bug #1004).
    [cjh] Never set an empty Horde_Tree cookie (Bug #1022).
    [mms] Fix displaying of folders in IMAP_Tree:: for IMAP servers that don't use
          'INBOX' as their delimiter (Bug #1014).
    [cjh] HORDE_MENU_MASK_NONE now really means only explicitly added menu items
          are displayed.
    [cjh] Ignore H3 in version comparisons (Bug #1017).
    [cjh] DataTree_null now stubs out the full DataTree API to avoid fatal errors
          when not using a permanent backend.
    [jan] Fix deleting of identities (Bug #1018).
    
    
    ----
    v3.0
    ----
    
    [cjh] Try to catch dangerous URLs in the dereferrer (go.php).
    [cjh] Improve tree graphics for right-to-left languages (Vahid Ghafarpour
          ).
    [mms] Fix IMAP_Tree display if folder contains the text 'pop3'.
    [cjh] Fix the Horde_Form date picker popup in Konqueror/Safari (Bug #963).
    [jan] Spaces in tree views with Internet Explorer have been fixed.
    
    
    --------
    v3.0-RC3
    --------
    
    [cjh] Always reload frameset after logging in (Bug #814).
    [cjh] Fix menu rendering for IE 5.0/Mac.
    [cjh] Turn off PNG transparency for IE by default.
    [cjh] Allow to pass an array of attributes to Horde::img().
    [cjh] Allow to set a password for the auto authentication driver.
    [jan] Add option for null driver to mailer configuration.
    [jan] Fix configuration of ZPS cache.
    [jan] Fix some javascript errors with IE 5.0.
    [cjh] The "Horde Purple" theme is now simply another theme that inherits from
          the global CSS settings, instead of being both the parent theme as well
          as a user-chooseable option.  The default graphics are now in a
          top-level themes/graphics directory as well for use by all themes.
    
    
    --------
    v3.0-RC2
    --------
    
    [jan] Show tab with the field that didn't validate on submitted forms.
    [mms] Add a generic MIME_Viewer that will display the raw text of text/*
          parts that we do not have a specific viewer for.
    
    
    --------
    v3.0-RC1
    --------
    
    [cjh] Use HORDE_MENU_MASK_* constants for determining what links are shown
          on menus.
    [jan] Create default parameters when adding a new block to the portal.
    [mms] Autodetect exact version of IE (5.0+) on login and turn off compression
          only for buggy versions.
    [cjh] Use an IE behavior for handling alpha transparency with PNG images
          instead of an onload handler.
    [mms] Allow all folders to be pre-fetched when intializing IMAP_Tree::.
    [mms] Added extensions to the form renderer for the file selection API.
    [cjh] Render all menus as 
      tags, formatted with CSS. [mms] Added example of _imp_hook_spam_bounce to config/hooks.php.dist. --------- v3.0-BETA --------- [cjh] Allow to insert images from galleries in the WYSIWYG HTML editor (Duck , Roel Gloudemans ). [mdj] All Horde icons changed from GIF to PNG. [mdj] Add /themes directory and group all of each theme's files under a subdir of this directory. [jan] Switch from dynamic to static CSS files. [mms] Add support for Message Disposition Notifications (RFC 2298). [jan] Add TableOperations, ContextMenu and ListType plugins to rich text editor. [jan] Add DataTree browser to admin interface. [cjh] The Horde_Cache:: API has been completely rewritten to take advantage of the new ZPS4 api for content caching, which allows a more familiar caching API overall. The old zps driver has been dropped because of this. [jan] Add Persian (Western) translation (Vahid Ghafarpour ). [jan] Drop usage of arg_separator.output. [jan] Make sidebar width a preference (Rick Emery ). [cjh] The Prefs_sql driver now uses DB::prepare/DB::execute for better support of large fields on database backends such as Oracle. [cjh] Support custom field mappings in CSV exports, and add an Outlook export type. [cjh] The Horde sidebar menu is now built with Horde_Tree. [jan] SECURITY: Close an XSS hole in the HTML viewer, a variation to the one reported in http://www.greymagic.com/security/advisories/gm005-mc/. [jan] Add configuration option to enable SSL for logins only. [jan] Remove share type (private/public). [jan] Add framework to clear out user data, e.g. when removing users. [jan] Add access keys. [jan] Don't require blocks to be registered in the applications' APIs. [cjh] Introduce a '_default_' color and better handling of user-specified Unfiled colors. [jan] Allow themes to use their own icon sets. [cjh] Categories and category color labels are now handled globally by Horde, and provided to all applications that use them. [jan] Identities are now managed with the preferences code and can be accessed from every application. [mms] Handle RFC 2231 encoded parameter values. [mms] Add IMAP_Sort class to provide sorting for IMAP mailbox lists. [jan] Add user management to IMAP authentication driver. [jan] Add IMAP_Admin class to manage IMAP mailboxes. [mms] Added a generic text/html MIME_Viewer driver for all Horde applications that attempts to sanitize malicious code hidden in HTML. [mms] Added a generic message/rfc822 MIME_Viewer driver. [cjh] Remove HORDE_LIBS constant and assume libraries are in the include_path. [jan] Add searching and paging to the user administration interface (Joel Vandal ). ---------- v3.0-ALPHA ---------- [jan] Access keys are no longer generated automatically but defined by the developers and translators. [cjh] The new services/prefs.php file is now the only UI page necessary for preferences for all applications - all app/prefs.php files are now obsolete. [cjh] Prefs::getPref() has been deprecated and is no longer present. [cjh] Horde::, Registry::, and the last of the libs that are moving should be moved to framework packages now. [cjh] Editor::, Menu.php, NLS::, and Signup.php have all been moved to framework packages. [mms] Moved the IMAP Tree generation class from IMP to framework so it can be used by other applications. [mdj] Setup now has a more informative format. The CVS version tag is copied from the conf.xml file into the conf.php file so that it be used to warn which applications need their conf updated. [cjh] Use javascript to autodetect whether or not the frameset is present. [cjh] Horde_History, Horde_Links, and Horde_Search have been moved to framework packages. [cjh] Allow apps including horde/lib/base.php to specify that a different registry application should actually be pushed onto the Registry application stack. This lets the fiction of problem.php being its own application play nicely with the new permissions checking. [cjh] The new application permissions checking has been modified to allow access to all authenticated users by default, and to deny guest access by default. All variations on that must be set explicitly. [cjh] Remove the Guest Services link; it's been obsoleted by $conf['menu']['always']. [cjh] Various $no_auth and $self_contained_auth flags have been standardized into an AUTH_HANDLER constant, which if defined signals the application that it should not check permissions upon calling $registry->pushApp(), as the calling script will handle that itself, or is a system-level cron job/script/etc. [cjh] Add an option to $registry->pushApp() to specify whether or not to check application permissions. [cjh] The 'allow_guests' setting, and $registry->allowGuests(), have been removed in favor of Horde_Perms application permissions. [mms] Added the text/richtext MIME_Viewer. [jan] Instantiate the global Perms object in Registry.php. [cjh] Category has been moved to a framework package, and also renamed to DataTree so that it has a more intuitive name for the API. [jan] Add Indonesian language (Slamin ). [jan] Add Auth_login class. [jan] Add Horde::externalUrl(). [mdj] Perms is now a globally available object, set by the registry's loadPerms(). [jan] Add "About" page for the help system. [jan] Add SOAP server to RPC framework. [cjh] Move PrefsUI to Prefs/UI.php for package consistency. [mms] Added NLS_GeoIP:: to do Hostname -> Country lookups. NLS:: will do lookups by default now using country TLD codes. [mir] Add preprocess hook for Signup system. [jan] Move Horde_CLI, Horde_Cache, Horde_Cipher, Horde_Compress, Horde_Token and Horde_Util packages to the framework module. [cjh] Reorganize a number of files from the top level and from util/ into a new services/ directory and a number of services/* subdirectories. This should give us a better base for expanding the services provided by the core Horde module in the future. [max] Add support for and tags to the Help xml parser. [cjh] Add the Horde_History API, for storing timestamped events for arbitrary objects. [cjh] Horde_Template now allows if: conditions on array values (Nuno Loureiro ). [jan] The administrator can now force the default language in nls.php (Etienne Goyer ). [mdj] Horde_Form now supports setting of a help icon linked to help.xml. [cjh] mime_mapping.php is no longer a config file; replaced with mime.mapping.php inside the MIME package. [cjh] Add Google search applet (Joe Wilson ). [jan] UTF-8 support is enabled by default now. [jan] Themes are now automatically read from the config/themes directory. [cjh] Add support for other kinds of servers and other kinds of responses to rpc.php and the RPC:: API. [jwm] Add support for approving queued signup applications. [cjh] Groups can now have an email address associated with them. [cjh] Make Horde-level Blocks configurable through the registry, allowing easier adding of new blocks (Joe Wilson ). [cjh] CategoryTree is now deprecated in favor of Horde_Tree. [cjh] Move the admin permissions and groups pages to use Horde_Tree. [max] Add _comparePasswords() function to Auth_sql to correctly compare all crypted passwords similar to the Passwd module. [max] Add crypt-des (which is the same as crypt), crypt-md5, and crypt-blowfish encryption types, to match Passwd module. [max] Add optional show_encryption param to Auth_sql, to match Passwd module. [mms] Added IP Address check to Auth::authenticate() to increase security. [jan] Remove NLS::decimalFromLocale() and NLS::decimalToLocale(). [cjh] Horde_VFS:: is now VFS:: again, and has no external Horde dependancies. [cjh] Round out the various shell tools with a command shell. [cjh] Add sidebar.php and appropriate prefs entries for using Horde with the menu as a Mozilla sidebar. [mms] Add IMAP_Cache:: class to handle cached IMAP server data. [cjh] Make getCategoriesByAttributes() much more sophisticated - it can now handle a pretty much arbitrary logic tree - and use it to optimize Horde_Share::listShares(). [cjh] Add getCategoriesByAttributes(), and use it in Group::getGroupMemberships(). [cjh] Add code that lets a CategoryObject subclass define a mapping from its internal data to the new horde_category_attributes table. [mms] IMAP_Search:: now uses a IMAP_Search_Query:: object to build the actual IMAP search. [mms] Added a secure delete temp file option that will overwrite any temp file with random data before unlinking. [jan] Add Lavender theme (Ziaur Rahman ). [cjh] Horde_Template:: is now capable of translating text inside tags. [cjh] Horde_Mobile:: now properly supports multiple submit elements in forms. [mac] Add generic Cyrus auth driver, Auth_cyrus. [mac] Add optional encryption param to Auth_sql, to match Passwd module. [jan] Add new hooks (replacing _horde_hook_username) to convert user names from the backend to Horde and back. [cjh] Add a new API call, Auth::isAuthenticated($realm = null), for determining whether or not a user is logged in to the current realm (by default null). Auth::getAuth() is still used to get the current user, but now you don't need to know the auth realm to get the current user - just to check authentication. [cjh] DHTML date picker now opens right over the image used to anchor it. [cjh] The last_login preference is now entirely handled by Horde. [mms] Add Horde_Test:: class/templates to aid in creating test.php scripts. [mms] Move complex IMAP searching code from IMP_Search:: to IMAP_Search::. [cjh] Re-work the Horde LDAP schema bits to be more correct and consistent (Adam Tauno Williams ). [mms] Add DOM tooltip capability via Horde::linkTooltip(). [mms] Add garbage collection class (Horde_VFS_GC::) for VFS. [mms] Add timeout to PGP keyserver lookup. [cjh] Add navigation for previous/next preferences block in PrefsUI (Mathieu CLABAUT ). [cjh] Add Horde_Links API (j.huinink@wanadoo.nl). [cjh] Add more introspection, in the form of getContentType() and getLink(), to the Horde_Image:: API. [cjh] Add util/cacheview.php for viewing any data with a Content-type put into the cache. [cjh] Add Horde_Cache::cacheObject() for use in caching the results of non-static object methods. [cjh] Rename Cache:: to Horde_Cache::. [cjh] Move Cache_session:: to Horde_SessionObjects::. [mms] Added Horde::extensionExists() to cache extension_loaded() calls. [cjh] Add NLS::decimalToLocale() and NLS::decimalFromLocale() to handle converting between different decimal point separators. [cjh] Added MIME_Headers::. [mms] Moved gzip and tar file handling to Horde_Compress_*:: modules. [mms] Moved ZIP handling to the Horde_Compress_zip:: module. [mms] Moved TNEF handling to the Horde_Compress_tnef:: module. [mms] Added Horde_Compress:: API - used to compress/decompress data. [mdj] Added the DOM calendar date picker to Horde_Form, based on work by Mike Cochrane and Brian Keifer . [mms] Added multipart/report MIME_Viewer::. [mms] Added MIME::generateMessageID() to generate MIME-compliant message IDs. [cjh] Add command-line setup.php script. Right now, this only generates/updates configurations; you cannot *edit* a configuration with it. [jan] Add String:: class with locale/charset safe string functions. [mms] Added Horde::authenticationFailureRedirect(). [mms] Added Browser::escapeJSCode() to escape certain characters in javascript code depending on the browser type. [jan] Add NLS::strtolower() and use it everywhere where locale independance is necessary. [jan] Add Turkish translation (Genco Yilmaz ). [mms] Add 'link' parameter to the preferences config to allow for help links to be added to the preferences pages. [mms] Another Maintenance:: rewrite - now store all data in the cached Maintenance_Tasklist object. [mms] Added check to Prefs:: to ensure the data stored does not exceed the maximum storage size of the preferences storage system. [jan] Add UTF-8 support. Any content with any charset can now be displayed with any translation. [mms] Add NLS::checkCharset() to determine whether a given character set is valid on the current system. [cjh] Deprecated Registry::includeFiles() and Registry::shutdown(). [mms] Add support in MIME_Magic:: to use the UNIX file function to determine the MIME type of unknown files. [mms] Added an example cron script to delete old temporary files. [mms] Correctly get charset information for MIME_Parts in MIME_Structure. [mms] Rewrote MIME_Message to extend MIME_Part. [cjh] Add ordering extensions to the Category:: framework (Marko ). [cjh] Add a simple template engine, derived from bTemplate, for Horde applications to use. [cjh] Add Auth_yahoo:: which lets you have no local auth and rely on Yahoo! mail usernames. [mms] Moved Server configuration checking functions to Server::. [cjh] The user admin page can now set fullname and from_addr preferences for any user as long as the Auth backend is capable of at least listing users (doesn't have to be able to update them). [cjh] Share:: is now Horde_Share::, and is reworked to hold permissions internally. We can now assign group/default/guest permissions more easily. [jan] Add RPC::parseUrl(). [jan] Add RPC based remote summaries. [cjh] Add a SQL Shell to the Horde admin section. [cjh] Don't prefix Horde admin menuitems with "Horde" to save space. [cjh] Horde_Form:: forms now use the Horde_Token:: API by default to make sure that they cannot be reloaded. [cjh] Rename Token:: to Horde_Token:: for future packaging. [jan] Add Registry::listAPIs() and Registry::listMethods(). [cjh] The Perms:: system now supports default and guest permissions. [cjh] Applications can now provide individual registry methods, not just whole interfaces. Applications can override a single method out of an interface as well - an app providing a mail/filter while IMP provides mail/*, e.g. [cjh] Renamed FormSprocket:: to Horde_Form:: and GraphSprocket:: to Horde_Graph:: for consistency and future PEAR packaging. [mir] Added example of _imp_hooks_fetchmail_filter to config/hooks.php.dist [mms] Added the MIME_Contents:: class; functions to help in the output of MIME content. [cjh] Rewrite the Category:: system to allow multiple leaves with the same name (as long as they have different parents) and rewrite everything (Perms::, Group::, Share::, etc.) to use it. [cjh] Move _fileCleanup() into Horde:: as Horde::deleteAtShutdown(), and add Horde::_deleteAtShutdown() to do the actual deleting. [cjh] Initial support for configuring the summary screen (Eric Rechlin ). [cjh] Add a system for defining generic hooks for any preference. See horde/config/hooks.php.dist for lots of examples and docs. [cjh] Add a colorpicker utility to Horde (Michael Cochrane ). [cjh] Add a guest services entry page and links to it from all login pages. [jan] Add translation helper script. [mms] Stylesheet link generation handled by Horde::stylesheetLink(). [cjh] Add the new Config:: API and setup.php, a system which reads configurations from XML files and existing conf.php files, taking care of merges and adding new parameters. Currently we have a web wizard. [cjh] css.php now supports loading CSS classes for multiple applications. [mms] Removed the SessionCache class. Equivalent code is now available in the Cache_session:: class. [mms] Added IE broken-browser downloading code to Browser::. [mms] Added a session driver to Cache::. [cjh] Rename config/horde.php to config/conf.php. [cjh] Move cookie_domain, cookie_path, server_name, and server_port into horde/conf.php. [cjh] Add a parameter for setting the session cache_limiter. [cjh] Add MIME_Viewer_text to Horde. [cjh] Rewrite all factory/singleton methods to allow individual applications to provide a custom backend, and to allow sites to provide custom backends in their include_path settings. [mms] Handling of Content-Type parameters moved to MIME_Part from MIME_Message. [mms] Crypt_pgp:: can now upload keys to a public keyserver. [mms] Renamed the Lang:: class to NLS:: and moved the timezone setting method into it. [mms] The local timezone can now be set via the Horde::setTimezone() call. [mms] All browser headers for downloading a file have been moved to the Browser:: class. [cjh] Add files to util to support embedding a GUI editor into our pages. [mms] MIME:: no longer exports $mime_types and $mime_encodings as global variables - rather, MIME::type() and MIME::encoding() should be used. [mms] The tgz MIME_Viewer now lists all files without using an external helper program (Michael Cochrane ). [mms] The rar MIME_Viewer now lists all files without using an external helper program (Michael Cochrane ). [mms] The zip MIME_Viewer now lists all files without using an external helper program (Michael Cochrane ). [mms] Maintenance:: now uses session variables to provide much cleaner and more robust performance. [mms] MS-TNEF attachments are now handled completely via PHP rather than with an external program. [mms] Added application/ms-tnef MIME_Viewer. [mms] Horde_Crypt_pgp class can query public keyservers. [mms] MIME_Structure::parseMIMEHeaders() can now parse all headers of a MIME message and return an object. [jan] Add MIME::rfc822WriteAddress() to replace imap_rfc822_write_address(). [mms] Added S/MIME MIME_Viewer. [jon] Support referrals between LDAP servers in the LDAP preferences driver (Kevin Hildebrand ). [mms] MIME_Structure::parse() now returns a MIME_Message object. [cjh] Configure administration services in the Registry (Marcus I. Ryan ). [cjh] Add API methods for getting the preferences and identities of users other than the logged-in user. [cjh] Allow setting the Content-Disposition of MIME_Part objects. [mms] Add Crypt:: framework. [max] Add Brown Horde theme (Marco Obaid ). [jon] Allow the LDAP version to be specified for the LDAP preferences driver. [jan] Add theme preference. [jan] Add callback funtion for preferences. [jon] Remove the $conf['menu']['floating_bar'] functionality. [jan] Load only login page on startup and redirect to frameset after login. [cjh] Don't allow anonymous access to problem.php. [cjh] Add en_GB locale. [cjh] Remove extensions on temporary files; this is a temp race hole. [cjh] Allow for auto-creation of permissions (multiple levels of hierarchy). [cjh] Add adding/removing of users from groups. [cjh] Create temp files with the right extension in MIME_Viewer_enscript:: so enscript has more clues to guess file type. [cjh] The admininstration interface for Groups and Permissions is now mostly functional. [cjh] Make application authentication an Auth:: driver, instead of a special Registry case. [cjh] Fix problems with the Notification stack and register_globals being off. [jon] Alter Horde::img() to explicitly accept an alt="" attribute. Horde::img() now generates title="" attributes based on the alt="" text, too. [cjh] Notification::notify() passes the message stack to all listeners, so that listeners don't have to know about the message stack, and app writers don't have to know about all possible listeners. [cjh] Replace the HORDE_* message constants with 'horde.error', etc. for greater flexibility. [cjh] Remove Horde::raiseMessage() now that the Notification system provides that functionality. [cjh] Use the new Notification system. [cjh] Remove other Registry get() methods. [jon] Remove support for the horde_language cookie. [mms] Move the maintenace framework from IMP to Horde. ------ v2.2.9 ------ [jan] SECURITY: Fix potential XSS vulnerability due to not properly escaped error messages. ------ v2.2.8 ------ [jan] SECURITY: Close XSS when setting the parent frame's page title by javascript (cjh). ------ v2.2.7 ------ [cjh] Restore compatibility with PHP 4.1. [jan] SECURITY: Fix potential XSS vulnerability in the help window. [jan] Fix charset for Latvian translation (Bug #656). ------ v2.2.6 ------ [jan] Use DB::prepare/DB::execute ONLY for Oracle to avoid implicitly requiring PHP 4.2 for all other RDBMs. [cjh] Fix Oracle session handler. [cjh] Add SQL scripts for Oracle and PostgreSQL session handlers. [jan] Don't strip trailing spaces from signature dashes in IMP. ---------- v2.2.6-RC1 ---------- [cjh] Fix support for custom session handlers. [cjh] Use DB::prepare/DB::execute in the Prefs_sql driver for better support of large fields on databases such as Oracle. [jan] Show the user's full name on the summary screen directly after logging in (D. Adam Karim ). [jan] Fix javascript error in "Problem" page with some translations (Bug #61). [cjh] Fix handling of PostgreSQL blobs (Bug #44). ------ v2.2.5 ------ [jan] Add Indonesian language (Slamin ). [jan] Add Galician translation (Rafael Varela Pet , Guillermo Mendez ). [mms] Fix downloading of files with spaces in Mozilla. ------ v2.2.4 ------ [mdj] SECURITY: Add dereferer to strip off session information from links to the outside of the Horde system to protect against session hijacking. [mms] SECURITY: Add code to protect against session fixation issues. [jan] Fix a bug with importing vCard 2.1 data. [jan] Add Arabic (Syria) translation (Platinum Development Team ). [jan] Add Macedonian translation (Stojan Pesov ). [mir] Fix a bug that incorrectly quotes pref values (Bug #1224) [cjh] Fix a bug that prevented logging. [mms] DB session handlers do not use persistent connections by default. ------ v2.2.3 ------ [mms] Fix parse error in Horde_Cipher_BlockMode_ofb64::. ------ v2.2.2 ------ [mms] Optimization of Secret:: and Horde_Cipher:: drivers. [jan] Add Catalan translation (Angels Guimerà ). [mms] Added a RADIUS Auth:: driver. [mir] Added a Samba Auth:: driver. [cjh] Added the Horde_Image:: class. ------ v2.2.1 ------ [jan] Fix incompatibility with PHP < 4.2.0 in the SQL VFS driver. [jan] Fix undefined variable in Cipher.php (cjh). [mms] Complete merging of SQL session handler. ---- v2.2 ---- [cjh] Add support for user-defined session handlers (Mike Cochrane ). [mac] Change Secret:: from using PEAR Crypt_HCEMD5 to the Horde_Cipher class. [mac] Add Horde_Cipher:: class to provide a common abstracted interface to various Ciphers for encryption of arbitrary length pieces of data. [mms] Correctly get charset information for MIME_Parts in MIME_Structure. [jan] Add Latvian translation (Kaspars Kapenieks ). [jan] Add Romanian translation (Corneliu MUSAT ). [jon] Added support for an entity to the help system. This allows an external link to be embedded in a help entry. () [cjh] Rename VFS:: to Horde_VFS:: for PEAR packaging. [cjh] VFS:: is now packaged so that it can be exported as a PEAR component. [cjh] Add a multi-user SQL VFS backend (Mike Cochrane ). [cjh] The VFS api now consistently takes a temp file in the write() method across all backends (Michael Varghese ). [cjh] Add a VFS API for storage of files in an abstracted filesystem. [cjh] Add a preference to allow maintenance ops with no confirmation screen [cjh] Replace 'show' attribute in the registry with a more flexible 'state' attribute. [jan] Allow setting the number of columns in the summary screen as a user preference (Brian Keifer ). [cjh] Add Horde::getGet() and Horde::getPost(). [cjh] Add an initial_application preference so users can select an app to be taken to instead of the Horde Summary on login. [cjh] Make text, icon, or both menus a user preference (KaalH! ). [cjh] Add a parameter for setting the session timeout. [cjh] Add a parameter for setting the session delimiter. [mms] Add MIME_Magic::filenameToMIME(). [jan] Use arg_separator.output instead of hardcoding '&' (David Ulevitch ). [jan] Add Notification::count() (David Ulevitch ). [cjh] Add Auth::isAdmin(). [cjh] Allow loading of sub-classes from several additional sources. [jan] Remove references to not yet released applications (Gollem, Troll). [cjh] Rewrite Category_sql implementation to be much more efficient. [jan] Add Lithuanian translation (Darius Matuliauskas ). [mms] Add Horde::compressOutput(). [mms] Add a kerberos Auth:: driver. [jan] Add Bulgarian translation (Miroslav Pendev ). [jan] Remove deprecated DB::isWarning() calls. [mms] Add Horde::createTempDir(). [cjh] Add Horde::usingSSLConnection(). [cjh] Replace ). ---- v2.1 ---- [jan] Add Hungarian translation (Laszlo L. Tornoci ). [jan] Add Norwegian Nynorsk translation (Per-Stian Vatne ). [jon] Major overhaul to the LDAP preferences driver. Note the changes to config/horde.php and scripts/ldap/horde.schema when upgrading. [jan] Add Slovenian translation (Jure Krasovic ). [cjh] Add a Horde preferences screen, and a preference to refresh the summary screen. [cjh] Add text/enriched MIME_Viewer (Eric Rostetter ). [jan] Improve language selection. [jan] Add Japanese translation (B.J. Black ). [cjh] Close a potential problem with register_globals On and $js_onLoad. [jan] Add Prefs::isDefault() method to determine if a preference's value is set by the user or the default value from prefs.php. [jon] Overhauled LDAP preferences driver. [cjh] Make Horde::dispelMagicQuotes() recursive, so that it handles arrays. [cjh] Have Secret::setKey() check for the session cookie explicitly, to avoid problems with old cookies being sent to a site when they are really disabled. [cjh] Add a PrefsUI class for handling the form processing and UI generation for user preferences; this code was duplicated all through Horde. [cjh] Add a mapping function to the enscript driver which maps file extensions to enscript language codes, and pass the language directly to enscript, to avoid having to use a file extension. [cjh] Fix MIME_Magic::MIMEToExt() to work with x-extension/ext types. [cjh] Add MIME_Magic::MIMEToExt() to map MIME types to file extensions. [cjh] Rewrite Perms:: to use the Categories backend. [jan] Change the Norwegian Bokmal locale from no_BOK to nb_NO and make it the default language for Norwegian users. [cjh] Make Horde's login screen nicer; include reasons in it. [cjh] Use HORDE_TEMPLATES for all template paths. [cjh] Use $registry->get() for all Registry information. [cjh] Removed administration code which is incomplete and confusing to users. [jan] Add Estonian translation (Toomas Aas ). [jan] Add Slovak translation (Leo Mrafko ). [jon] Enable the "portability" option in the PEAR DB (sql) drivers. [cjh] Use Horde's 'initial_page' configuration value in the Horde frameset. [jan] Add Portugues translation (Nuno Loureiro ). [jan] Rebuild the language selection logic. The language selected on the login screen is now respected and the site's standard language is defined in lang.php instead of each application's preferences. [jan] Add javascript to set the frameset's page title (Michael Cochrane ). [jan] Add Ukrainian translation (Andriy Kopystyansky ). [jan] Update gettext documentation and Makefiles for Solaris and Debian. [jan] Add Danish translation (Martin List-Petersen ). ---- v2.0 ---- [jan] Add Norwegian Bookmal translation (Oystein Steimler ). [avsm] Add .htaccess files to deny access to data directories. [jan] Add Finnish translation (Leena Heino ). [cjh] Fix one last problem with POP3 and multipart/alternative attachments. -------- v2.0-RC4 -------- [rich] Include rewritten and reorganized documentation. [cjh] Add an MSPowerpoint MIME_Viewer. [jan] The language cookie was removed in favor of new methods in the Lang:: class that select the language and set the gettext domain. [avsm] Include Chora in this release cycle, but not showing in the toolbar. [cjh] Add MIME_Viewer_zip. [cjh] Trim registry.php.dist to only list apps in this release cycle. [jan] Add deleteObject() method to the SessionCache class. [bjn] Change 'en' and 'en_EN' locales to 'en_US' (default). -------- v2.0-RC3 -------- [cjh] Recognize a few Palm.net browsers and set quirks/features accordingly. [cjh] Support for adding and listing LDAP users given a set schema. [cjh] Set the session cookie parameters with our cookie_path/cookie_domain settings. This means that you can be logged into multiple Horde installations on the same server (different paths) and not have the sessions interfere. [cjh] Use 'hostspec' consistently in Auth drivers. -------- v2.0-RC1 -------- [jan] Add Brazilian Portuguese translation (Carlos Daniel Kibrit ). [jan] Add Greek translation (Stefanos I. Dimitriou ). [jan] Add vCard MIME driver. Changed config/mime_drivers.php.dist. [jan] Add Swedish translation (Andreas Dahlén ). [jan] Add Korean translation (J.I Kim ). ------ v1.3.5 ------ [jon] Added $file and $line parameters to Horde::fatal(). [jon] Removed the PREFS_* and AUTH_* constants in favor of PEAR_Error objects. [avsm] Don't depend on the registry being available when displaying the 'Horde is not configured' message. [cjh] Clean up the Identity class to be a generalized, clean piece of the framework that can be used in other apps and subclassed if necessary. [cjh] Make failure to connect to the preferences datasource a fatal error. [cjh] Added the Serialize:: class for various methods of encapsulating data (steph ). [cjh] Added the capability to get authentication credentials other than username back from the Auth framework, and completed the authentication realm functionality. [jon] Allow the table cell and link CSS classes to be specified when creating menu items. [jan] Add registry method for linking to a nag task. [jan] Add identity class. [max] Add Registry::getName() for querying application names. [cjh] Horde now provides the Horde::logMessage() method for logging of information according to configurable priorities, etc. [jan] Add functionality to map date and time fields to the Data class. [cjh] Add the beginnings of a user administration system. [cjh] Add Chinese (Traditional) translation (David Chang ). [jan] Add Italian translation (Giovanni Meneghetti ). [jan] Add Data class for importing and exporting data. [jon] Cleaned up the help system a bit. [cjh] Add Horde::fatal() for displaying PEAR_Error objects and aborting. [avsm] Extend Horde::getTempFile() to allow directory to be overridden. [avsm] Allow temporary files to be unregistered from deletion. [avsm] Add a Cache framework for persistently storing objects, along with a filesystem driver. [jan] Add Polish translation. [cjh] Fix a problem with $registry->call() and switching application contexts. [cjh] Get rid of the invoke() methods in the registry. [cjh] Don't re-include application config files; save configs in a cache so that we can just point $GLOBALS['conf'] at the old config on $registry->popApp(), etc. [jan] Add French translation (Frederic Trudeau ). [cjh] Add Czech translation (pchytil@asp.ogi.edu). [jan] Add new timezone handling with cleartext timezone names in lang.php. [cjh] Add Russian translation (Ignat Ikryanov ). [jon] New methods in Browser.php for retrieving versions. [jon] Browser.php now detects Opera. [cjh] Move the language and charset defaults into config/lang.php, and add a Registry method to get the current charset. [cjh] Map browser codes such as 'nl' to the full code ('nl_NL', etc.). [avsm] Replace $conf['paths'] with the $registry equivalents. [avsm] Add four registry functions to query webroots and paths. [avsm] Many MIME_Viewer changes: API tweaks, new drivers, works with IMP. [cjh] $conf['user']['online_help'] is now a Horde-level setting. [avsm] Enable applications to have local MIME_Viewer drivers in addition to the global Horde ones. [avsm] Shuffle around the MIME_Viewer API: getDriver() is now private [avsm] Add an 'initial_page' option to the registry, to let us link into any page inside an application. [cjh] Add a framework-level base.php file and make framework scripts use it. [cjh] Add re-organized but still mostly out of date HELP/LISTS/SOURCE files (Josh Miller ). [cjh] Add a parameter that determines whether or not apps are linked on the Horde menubar. [cjh] Clear the whole session when the user logs out of Horde. [jon] Added Prefs::isEmpty() for determining whether a preference is empty. [jon] Added an $onclick parameter to Horde::link() for specifying an anchor's 'onclick' JavaScript event. [cjh] Use the *url() functions more consistently to make sure that cookie-less sessions work. [cjh] Modify css.php to use the Registry to get application file paths. [cjh] Add cookie_path and cookie_domain settings for people who keep apps outside of the Horde webroot or on multiple servers. ------ v1.3.4 ------ [cjh] Add a Horde summary framework, which uses the Registry to get summaries of available data - tasks, events, etc. - for the Horde login screen. [cjh] The preferences settings should be Horde-wide, and so have been moved to horde/config/horde.php. [cjh] Move prefs.gif and generic prefs templates into Horde. [cjh] Move setting of the gettext domain into the Registry. [jon] Simplified the preference system's cleanup functions. [jon] Merge doctype.inc into common-header.inc. [jon] Added Text::htmlspaces() and Text::htmlallspaces(). [cjh] Add an option to Horde::getTempFile() to not delete the file at the end of the request. [cjh] Add a &singleton() method to the Registry class. [jon] Added Nag interface to the registry. [jon] Expanded the registry to handle importing application-specific configuration values. [max] Add auth/login and auth/logout options for Gollem in the registry. [max] Add Registry::getMethod function. [max] Add contacts/sources service to the registry. [cjh] Rename the Connection classes to Token. [cjh] Rename the ObjectStore class to SessionCache. [jon] Adding Dutch language. [avsm] Add icon support to the MIME_Viewer framework [avsm] Update the MIME_Viewer API to include getDriver() and getIcon() [jon] Overhauled the preferences caching system a bit. [cjh] Update Browser:: to recognize IE6. [jon] Added Horde-wide and driver-specific cleanup methods to the preferences system. [cjh] Remove the strtolower() from Lang::select() which was preventing proper locale names (like pt_BR) from working correctly. [max] Added authentication handler to the Registry. [jon] The 'session' preferences driver now honors preference scope. [max] Made sitename title configurable. [jon] Reworked the Menu::customItem() to accept PHP data structures instead of a string of encoded parameters. [avsm] Added MIME_Viewer framework to handle rendering files into HTML (and other) formats in a user-extensible fashion (experimental) [avsm] New MIME_Magic and mime_mapping.php config file (experimental) [avsm] Two new temporary file handling functions, Horde::getTempFile() and Horde::getTempDir() to take care of the housekeeping of temp files. [max] Added contacts/add service to registry. [cjh] Registry::call() is now Registry::link(). There is a new Registry::call() which actually returns the result of a function call made to another application. [cjh] Fix DB query result checking in sql drivers. [cjh] Fix help so that generic help links (on menu bars) show the topic list correctly. [cjh] Make the login form nicer, and add a logout link. [cjh] Make sure all of the sql drivers use DB::quoteString() on all strings. [cjh] Replace a @mysql_query() that was hiding in Connection/sql.php with $this->db->query(). [cjh] Return basename($language) from Lang::Select() to avoid possible exploits. [cjh] Add Registry::hasMethod() for checking if a piece of functionality has been registered with Horde. [jon] Another large overhaul to the preferences system. Note that the isChangeable() function has been renamed isLocked(). There is also support for preference scope (via isShared() and setShared()). [jon] Added capaiblity tests to those drivers that require non-standard PHP extensions (handled by Horde::functionCheck()). [jon] Added an Auth_LDAP Horde authentication driver. [cjh] Add little snippet-templates for dynamically building preference GUIs. [cjh] Rename the Auth interface's auth() method to authenticate() to avoid overlapping the name of the constructor for the Auth parent class. [cjh] The configuration array is now simply $conf. Any settings that must be accessible unchanged (not overridden) should be put into $conf['horde']. Everything else is fair game for applications to override. [cjh] Add a wml/wap login form. [max] Add an Auth_FTP Horde authentication driver. [cjh] Add an Auth_MCAL Horde authentication driver. [cjh] The Horde login form now actually does something. Logging in to it gets you a token in your session saying that you've authenticated and who you are. Apps can then use this information to allow or deny access, and to identify users. [cjh] The format of the config/registry.php file has changed drastically to be more readable and less indirect. There is also a new app parameter, 'allow_guests', which defines whether or not a user is allowed to access the application without logging in to Horde. [cjh] The Auth:: classes now expect to receive a userid and an array of credentials. Right now all backends assume that those credentials contain a password, but the way is clear to have other kinds of auth (IP, time-based, whatever). [jon] Added a new parameter to the LDAP preferences driver: 'always_bind'. [cjh] Added a Menu:: class that all modules can use to generate menu items. [jon] Cleaned up the LDAP preferences driver a bit. [jon] Added session-level preferences caching to the preferences system. [cjh] Have Horde::link() make sure that the status text is safe for javascript (htmlentities, addslashes). [cjh] Fix ObjectStore to work when register_globals = On. [jon] Added a Session-based preferences driver. ------ v1.3.3 ------ [cjh] Further revamp the MIME interface. Be consistent in capitalization (acronyms are capitalized), break out MIME_Structure and MIME_Message into seperate files, and put all methods into classes. [cjh] Add Horde::getFormData() to fetch a variable from either $HTTP_POST_VARS or $HTTP_GET_VARS (and to clean magic quotes, if necessary). [cjh] Remove the Log:: class. This is part of PEAR now. [cjh] Add a SessionCache:: class. This is intended for storing objects in the session intended for near-term use, and will currently start throwing out objects when more than 20 are put in. This will hopefully keep any one session from growing too large. [cjh] Use the new PEAR class Mail_rfc822:: to parse address lists, so that we get rfc 822 group support (my-buddies: jon@horde,org, max@horde.org;), which imap_rfc822_parse_adrlist() doesn't have. [max] Make Horde XHTML 1.0 compliant. [cjh] Add a few fields to the problem report and try to make it more friendly. [cjh] Flesh out the Mime:: class. [cjh] Move trimEmailAddress() into the new Mime:: class. [cjh] Move set_env_in_string() to Text::expandEnvironment(). [cjh] Rename horde_cleanup() to _fileCleanup(). [cjh] The zlib module now supplies a gzencode() function that obsoletes HTTP_Cache::gzEncode(). [cjh] Modify Horde::url() so that it defaults $conf['use_ssl'] to 2 (auto-detect current mode). [cjh] Modernize some of the Horde frontend (still lots to do here); get rid of package.HTMLDocument.php once and for all. [avsm] Breakdown all special characters in URLs to entities, to avoid ambiguity in how various browsers parse them. [cjh] Add Horde::raiseMessage() for creating Horde messages to be displayed to the user. [cjh] Some general UI tweaks - font size, etc. [cjh] Remove rfcdate() in favor of the new 'r' parameter to date. [cjh] Added application 'webroot' and 'fileroot' properties to the registry config file. These allow more flexibility in placing apps, and let the registry work from more places. [cjh] Moved package.Registry.php to Registry.php. [cjh] Commented config/horde.php.dist heavily. [cjh] Add a Secret:: class to Horde.php that provides a transparent interface to either the mcrypt extension (preferred) or the PEAR Crypt_HCEMD5:: class. [jon] Accept a user-defined function for performing username lookups in the preferences code. The preferences constructor looks for the function in $params['user_hook']. [cjh] Check HTTP_ENV_VARS for the user-agent as well as HTTP_SERVER_VARS. [cjh] Remove mailfrom() in favor of the PEAR Mail:: interface. Adjust the conf files and problem.php accordingly. [cjh] Add a set of invoke() methods to the Registry:: class for directly invoking services (ie, actually popping up a window) instead of printing links to invoke them. [cjh] Clean up package.Mime.php a bit; don't set a charset on MIME parts that aren't text. [cjh] Added a file driver for the Connection:: class. [cjh] Added a WAP index to provide quick links to all Horde wireless pages. [cjh] Add basic WAP browser detection to Browser::. Currently this is of the "it detects the phone I have and the simulator I use" variety; it is _very_ far from complete. [cjh] Added Max Kalika's Connection:: class for connection tracking. [cjh] HTTP_Cache:: now compresses content without the use of a temp file. [cjh] Fleshed out the Auth:: class with the ability to cache authorization in the session. [jon] Removed the scripted wordwrap in favor of the native function. Moved the wrap_message() function to Text::wrap(). [jon] Standardize on the rfcdate() function in lib/Horde.php. [cjh] The prefs drivers now expect $params['hostspec'], for consistency with PEAR. [cjh] The PEAR sql prefs driver now works. [cjh] Move horde configuration values that should not be overridded by modules into $horde['horde'][] to allow modules to do overriding/inheritance of other options. [cjh] Add the HTTP_Cache:: class to Horde.php for ETag generation, gzip compression of http content, etc. [cjh] Replace $horde['localhost'] with $HTTP_SERVER_VARS['SERVER_NAME']. [cjh] Reject outright envelope From addresses with spaces in them. [cjh] Quote the from address passed to sendmail to prevent shell exploits. [cjh] Update Browser.php to use HTTP_SERVER_VARS, consolidate the javascript version information, and add ssl_download_hack for browsers that need downloads to be cacheable. [jon] Add Text::filter to lib/Horde.php. [cjh] Check the return value of pclose() correctly in mailfrom(). [jon] Security fix for $from value in mailfrom(). [jon] Silence session_start warnings. [jon] Added new |extra| substitution to config/registry.php for extra, non-standard parameter passing. [jon] Remove buildURL(). It's been replaced by Horde::url(). [jon] Restructured the SQL preferences schema. [cjh] Added $horde['session_name'] to control the session name globally. [cjh] Session:: doesn't really buy us anything, so we've moved the utility methods that do into Horde::, and are just using php4 session calls elsewhere. [cjh] Added the beginnings of User and Auth interfaces, with a bare-bones working Auth_sql implementation. [jon] Rewrote the Session class for instantiation with hooks for user-defined session handlers. [cjh] The bare-bones implementation of the Perms scheme, with a sql driver, works. If you pass it a full path it will traverse up it, returning the first permission it finds. [jon] Moved the language handling functions in Horde.php into their own classed named Lang. [cjh] More consistent/css-based look for the help system. [cjh] Starting to remove all uses of call-time pass-by-reference. [cjh] Added css.php for automagical generation of stylesheets for apps. [jon] Promoted the WebClient class from lib/Horde.php to its own component named Browser.php. [cjh] Use wordwrap in a slightly different way, which seems to produce much prettier quoting of messages. [jon] Added Prefs/mysql.php driver from Max Kalika . [jon] New XML-based help subsystem. [cjh] Renamed package.horde.php to Horde.php. [cjh] Add img() and pimg() functions to the Horde:: class so that modules using only stylesheets don't need the HTMLDocument package. [cjh] Omit the session name/id from the URL if we can verify that cookies are being accepted. [jon] New wrap_message function that uses the native wordwrap function if it exists. [jon] Updating header comment copyright information. [jon] Report module versions in test.php output. [cjh] mime_encapsulate() now uses an array instead of an object. [jon] Removed the $_html['compose*'] sizing parameters from config/html.php. [cjh] Leave Bcc: out of the headers that are passed to sendmail. [jon] Rewrite a good portion of the scripts/set_perms.sh script so that it enforces an extremely high level of security. [cjh] The valid_lang() function now requires $nls['languages'][] to be set for a language to be considered valid (instead of just the locale directory existing). [cjh] Added a &singleton() method to make it easier to only create one log instance, no matter when you need it. [cjh] Now mailfrom() works for recipient addresses with single quotes or other characters that need to be escaped in them. [cjh] Log class now has an mcal instance, a composite (for grouping multiple log backends), and observers register the level of events they want to hear about, and only get notified of events as important or more important than that level. [cjh] Added a Log:: framework and syslog implementation, including a Log_observer class intended to sit on top of Lob objects and take action in exceptional circumstances. [cjh] Make sure to always send a charset with emails. [cjh] Improved the mime_decode() and mime_encode() functions. [cjh] Updated test.php to recognize php4 stable releases. [jon] Removed all of the locale/*.lang dependencies. [jon] Assume the browser is frames-capable by default. [cjh] Add horde_cleanup($filename), which takes care of deleting files that should be unlinked regardless of whether or not the request is canceled by the user before we finish executing. [cjh] Remove phplib dependancy in favor of php4 sessions/PEAR. [cjh] Replace use with require_once. [cjh] Fixed up select_lang() to work (identical to 1.2 now) [cjh] Horde is now under the LGPL. [cjh] Fix mailfrom() so it doesn't send extra headers when using mail() [cjh] Adding a 'margins' attribute to HTMLDocument to enable turning off document margins. ------ v1.3.2 ------ [cjh] Replaced module.XML_RDF.php with a working copy. ------ v1.3.1 ------ [cjh] Revamped the MimeMessage class to be much smaller and simpler. [cjh] Replaced the MimePartData class with a set of functions that more cleanly and correctly implement the MIME standard. [cjh] select_lang() now checks for en when the browser requests en_GB, etc. [cjh] Replaced all calls to ereg* functions with preg* functions, for speed. Because of this we now require php 3.0.12 or later. ------ v1.3.0 ------ [ ] German updated [ ] Fixed the broken 'back' link in setup.php3 for non-English users [ ] manager.php3, db.lib, and cohorts are now gone. They were all unmaintained, out of date, and not very useful. Various build scripts are updated to reflect this. [jon] Removed config/defaults.php3 in preference of horde.php3 [ ] Fixed a setup.php3 bug where " was used instead of ' for $default values (mike) [ ] New Finnish translations (Thanks to: leo.jaaskelainen@kolumbus.fi) [ ] Fixed lynx support issue with login.php3 [ ] Fixed signup.php3 problems [ ] Fixed problem.php3 problems (lynx support) [ ] Added database creation scripts for building phplib complian tables [ ] Moved all documentation (except README and COPYING) into docs/ subdir [ ] Added a caching class so that caching can be turned on per page if needed ------ v1.1.1 ------ [ ] Horde understands French (thanks to Mathieu Clabaut ) [ ] Major frameset redesign [ ] Auto registration/congiruation of modules ------ v1.0.3 ------ [ ] Horde is now web surfable. [ ] Horde handles lynx (pseudoly) [ ] Extendable menus. (menu.txt in horde/config) [ ] Signup, problem reporting, help functions are now part of horde tmpjWNuGb/horde-5.1.5/docs/TRANSLATIONS0000644000175000017500000006207312233761316017162 0ustar mathieumathieu========================= Horde Translation Guide ========================= :Author: Jan Schneider :Author: Chuck Hagenbuch :Author: Joris Braakman :Contact: horde@lists.horde.org (for administrators) :Contact: i18n@lists.horde.org (for translators) .. contents:: Contents .. section-numbering:: --------------------- Administrator Guide --------------------- For translator documentation see the `Translator Guide`_ below. GNU gettext, PHP and Horde ========================== Horde uses GNU gettext for internationalization (i18n) and localization (l10n). The manual at http://www.gnu.org/software/gettext/manual/gettext.html is biased against C and using Emacs. This is more for Horde. There is a good explanation for PHP and gettext at: http://www.faqts.com/knowledge-base/view.phtml/aid/2953/fid/422 People seem to like learning from examples better, so I have used dutch (nl_NL) as an example everywhere. There is a command line tool written in PHP for creating and managing translations in the ``/usr/bin/`` or ``horde/bin/`` directory. Usage instructions can be found in the `Translator Guide`_ below as well as instructions on how to start and maintain translations. Translations don't work ======================= If all or some translations don't work on your system, please follow the steps described below. If you want to ask for help either on the `i18n mailing list`_ or on `Horde's bug system`_, please explain which steps you tried and which failed. You might also find some more information in the FAQ_. Please note that Dutch (nl_NL) is only used as an example here. If you have problems with a certain translation use this translation's language code instead. Most locales only use the language part of the locale name (the first two lowercase letters) for the actual translation directories, i.e. ``nl`` in this example. Prominent exceptions from this rule are Chinese (zh_TW, zh_CN) and Brazilian Portuguese (pt_BR). 1. Is this locale (nl_NL) installed at all? ``locale -a`` should list all locales installed on your system. On Debian and Ubuntu not all locales may be enabled by default. On Debian edit ``/etc/locale.gen`` and run ``locale-gen`` after you changed the list of enabled locales. On Ubuntu run ``locale-gen nl_NL`` for all locales that you want to install. 2. Do you have any .mo files? Usually in ``/usr/share/locale/`` e.g. ``/usr/share/locale/nl/LC_MESSAGES/tar.mo`` 3. Does gettext even work? Get a string to translate:: $ strings /bin/tar | grep Memory Memory exhausted $ (LANG=nl_NL; LANGUAGE=nl_NL; LC_MESSAGES=nl_NL; gettext tar "Memory exhausted" ) Geheugen uitgeput 4. Does the local Horde file work? Assuming that you have put the translated Horde file in ``/var/www/horde/locale/nl/LC_MESSAGES/horde.mo``:: $ export TEXTDOMAINDIR=/var/www/horde/locale $ (LANG=nl_NL; LANGUAGE=nl_NL; LC_MESSAGES=nl_NL; gettext horde "Message" ) Bericht Create a file in the horde directory, langtest.php:: '; // Specify location of translation tables bindtextdomain('horde', './locale'); // Choose domain textdomain('horde'); // Print the already tested message echo _("Message"); echo '
      '; // this should print the same. echo dgettext('horde', 'Message'); ?> Output web browser:: Geheugen uitgeput Bericht Bericht .. _`i18n mailing list`: http://www.horde.org/community/mail .. _`Horde's bug system`: http://bugs.horde.org .. _FAQ: http://wiki.horde.org/FAQ Solaris ======= Since the .mo files are binary, they are platform specific. You have to rerun make in all po directories. On Solaris 7, you don't have the ``Partial Locales (SUNWploc)`` and ``Supplementary Partial Locales (SUNWploc1)`` packages installed if you get:: $ LANG=nl_NL couldn't set locale correctly On Solaris 8, you must install the local packages required for the locales you desire (for example, you may need to install ``SUNWweuos`` for Western European locales or ``SUNWmeaos`` for Middle Eastern locales). The packages are located on Software Disk 1 of 2 in the directory: ``sol_8_1001_sparc/s0/Solaris_8/Product`` This is what it should say: Solaris 7:: $ pkginfo | grep ploc system SUNWploc Partial Locales system SUNWploc1 Supplementary Partial Locales Solaris 8:: $ pkginfo | grep euo system SUNWceuos Central Europe OS Support system SUNWceuox Central Europe 64-bit OS Support system SUNWeeuos Eastern Europe OS Support system SUNWeeuox Eastern Europe 64-bit OS Support system SUNWneuos Northern Europe OS Support system SUNWneuox Northern Europe 64-bit OS Support system SUNWseuos Southern Europe OS Support system SUNWseuox Southern Europe 64-bit OS Support system SUNWweuos Western Europe OS Support system SUNWweuox Western Europe 64-bit OS Support The stuff is installed in ``/usr/lib/locale``:: $ ls /usr/lib/locale/nl LC_COLLATE LC_CTYPE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME nl.so.1 It was reported that the HTTP server has to be linked to the same libintl.so file as PHP on Solaris. Also, it may be required that libintl.so be loaded before libc is loaded. If you are having conflicts, you may be able to reside them by starting apache with one of the following commands:: $ LD_PRELOAD=libintl.so apachectl start FreeBSD ======= You also need UTF-8 support in FreeBSD. This is not installed by default in FreeBSD versions before 5.3, you need to install the ``utf8locale-without-swidth-040319`` package or port in older versions. ------------------ Translator Guide ------------------ Translation Tool ================ ``horde-translation`` is a small PHP script that should help translators doing their work. Any feedback, bug reports and feature requests should be send to the `i18n mailing list`_. This is also the right place for new translations and general discussions of i18n and l10n questions and problems. ``horde-translation`` is installed to your ``/usr/bin/`` directory by default, if using PEAR to install Horde. Otherwise it's located in ``horde/bin/`` For a list of available commands run:: horde-translation help For detailed help on a certain command run:: horde-translation help command Additional information about creating translations and fixing problems can be found in the `Administrator Guide`_. .. _i18n mailing list: http://www.horde.org/community/mail Prerequisites ~~~~~~~~~~~~~ To run this script you'll need a PHP command line executable with `gettext support`_ compiled in, and the basic `PEAR`_ libraries. The script expects your PHP executable to be in the binary search path. If your PHP executable cannot be found, either edit the first line of ``translation`` to reflect your location or call the script like:: /usr/local/bin/php translation. You'll need the `gettext`_ package version 0.12 or greater. You'll need the PEAR packages `Console_Getopt`_ 0.11 or greater, `Console_Table`_ and `File_Find`_. To install all needed packages, run:: pear upgrade PEAR Console_Getopt pear install Console_Table File_Find or download the newest package from the `PEAR`_ server and install them manually in your PEAR directory. .. _gettext support: http://www.php.net/gettext/ .. _gettext: http://www.gnu.org/software/gettext/ .. _PEAR: http://pear.php.net/ .. _Console_Getopt: http://pear.php.net/package/Console_Getopt/ .. _Console_Table: http://pear.php.net/package/Console_Table/ .. _File_Find: http://pear.php.net/package/File_Find/ Creating a new translation ~~~~~~~~~~~~~~~~~~~~~~~~~~ To create a new translation you first have to extract all gettext messages from the PHP sources. There are already template files with the ``.pot`` suffix in the ``locale`` directories that you can use if you have troubles extracting the messages, though these templates might be slightly outdated. Run:: horde-translation extract You now have to create a new PO file for your language. A locale has the form ``ll_CC`` where ``ll`` is the two letter `ISO 639`_ code of the language and ``CC`` the two letter `ISO 3166`_ code of the country, e.g. ``de_DE``, ``en_US`` or ``pt_BR``. Only some languages require to specify the complete locale name, like Chinese (``zh_CN`` or ``zh_TW``). If you want to provide a country-specific language variant, e.g Brazilian Portuguese (``pt_BR``) or Canadian French (``fr_CA``) you need to use the full locale too. All other languages should only use the ``ll`` part of the locale as a parameter for the ``translation`` script. horde-translation init -l ll Now you can start the translation by editing the created ``locale/ll/LC_MESSAGES/[modulename].po`` files. You should fill out the the complete header of the created PO file, e.g.:: # Dutch translation for Horde. # Copyright 2004-2013 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde package. # Joris Braakman , 2004. # msgid "" msgstr "" "Project-Id-Version: Horde 4.0\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2004-04-14 10:30+0200\n" "PO-Revision-Date: 2004-04-14 17:17+02:00\n" "Last-Translator: Joris Braakman \n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" To compile the translations to a binary format run:: horde-translation make -l ll After you created the new translation you have to add entries for this locale in the configuration file horde/config/nls.php. If you create a new translation for a certain module but there are already translations for the same language for other modules, then you should use a compendium. This will save you a lot of time and it will make translations much more consistent. .. _ISO 639: http://www.loc.gov/standards/iso639-2/ .. _ISO 3166: http://www.iso.ch/iso/en/prods-services/iso3166ma/index.html Compendiums ~~~~~~~~~~~ This tool utilizes a nice feature of gettext: compendium files. A compendium is a special PO file containing a set of translations recurring in many different packages. These compendiums will be used in the background without much intervention required. But you have to create and edit a compendium before you can use it. To create a compendium of all existing translations for a certain locale run:: horde-translation compendium -l ll The ``compendium.po`` being created will contain all modules' translations of this locale merged into a single file. You should take a closer look at this file because you may find a lot of special marked lines where you translated certain strings differently in the various modules. It's a good idea to fix the modules' translations now so that all modules use the same translations for the same strings. You can always recreate your compendium with the above command. If you're maintaining translations for different `branches`_ and assumed that you have all modules of the development branch in one directory and all of the stalbe branch in another, you probably want to share a compendium between these directories. To do this, you should first create a compendium in the stable branch, review it and fix all translations until you're happy with the results. Then create a second compendium in the head branch and include your first one with the --add option. Now fix the translations in this branch. If you're ready you can remove the first compendium and for now on use the compendium in the development branch for both branches. To do so, use the ``-c`` or ``--compendium`` option to specify a path to your compendium. If you translate directly from a git checkout, this is usually not necessary because you work with all branches in the same directory and simply switch between them with ``git checkout``. .. _branches: http://www.horde.org/development/modules Updating translations ~~~~~~~~~~~~~~~~~~~~~ The process of updating translations is a cycle where you extract new gettext strings from the sources, translate those new strings or update the already translated strings and compile them after. To update the translation for a module, run:: horde-translation update -m modulename -l ll This extracts the new strings from the sources and tries to update them from already existing translations in the compendium. You just have to translate all untranslated strings in the ``modulename.po`` file in the ``locale/ll_CC/LC_MESSAGES`` directory of the module you updated. If extracting new strings fails for some reason, you can use the provided ``.pot`` file instead to update your translation:: horde-translation merge -m modulename -l ll If your compendium is in a different directory than the ``translation`` script, you can specify the path to the compendium:: horde-translation update -m modulename -l ll -c /path/to/compendium Once this is done, you can compile the translation by calling:: horde-translation make -m modulename -l ll Extending existent translations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To have your own string (e.g. that you added to config files) displayed in several languages, you have to 1. specify your texts as gettext arguments, in English, e.g. by using the _() function. 2. edit the translation files for the required national languages, 3. compile those translation files. Be sure to keep records of your extensions, as you will probably have to repeat steps 2 and 3 after the next update. E.g., you plan to offer two IMAP servers to select from in the Webmail login screen: 1. In ``horde/imp/config/servers.php``, you specify:: $servers['Central'] = array( 'name' => _("Central Mail Service"), ... $servers['CompSci'] = array( 'name' => _("Mail Service of Computer Science Dpt.") ... 2. In ``horde/imp/locale/de/imp.po`` you add two entries:: msgid "Central Mail Service" msgstr "Zentraler Mailserver" msgid "Mail Service of Computer Science Dpt." msgstr "Mailserver Informatik" Likewise, you amend the translation files for other languages, as needed. 3. You compile the translations using the commands:: horde-translation make --module imp --no-compendium Access Keys =========== Access keys, also known as shortcut keys, allow easy access to important functions, normally by hitting the Alt/Meta key in combination with another key. This key is marked in most user interfaces by being underlined. As the access key is part of the word representing the action being executed, it is in the translators responsibility to select an access key when he translates these words. The action is always a link in Horde. The access key of a link is selected by prefixing it with an underscore. The help link in the menu for example is always "_Help". This means that the "H" of the link will be underlined and the help can be opened by hitting Alt+H. In the PO file this string will appear as:: #: templates/menu/menu.inc:53 msgid "_Help" msgstr "" A Spanish translator might want to translate this to:: #: templates/menu/menu.inc:53 msgid "_Help" msgstr "_Ayuda" Translators of multibyte languages need to do this a bit differently as only ASCII characters are allowed for access keys. A Traditional Chinese translator might want to use:: #: templates/menu/menu.inc:53 msgid "_Help" msgstr "_H說明" This renders to "說明(H)" in the interface and you can access this link with "H" as the access key. Right-to-Left Languages ======================= Translations for languages that are written from right to left might cause unexpected behavior if parenthesis or similar characters appear inside a translated string. To fix this broken string rendering you have to insert special Unicode codepoints into the translated string. Before such a string in parenthesis, add the U+202D codepoint. If there is more right-to-left text to come after the closing parenthesis, add the U+202E codepoint after it. If using the PO mode of the Emacs editor you can add codepoints with the "ucs-insert" command. Help Texts ========== Organization of the help files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The help texts are available in the ``horde/locale/``, and ``horde/APP/locale/``, directories, where APP is any Horde application. Every available translation is kept in a file called ``help.xml``, in a subdirectory named according to the language name. Examples: - Horde's original help texts are in the ``horde/locale/en/help.xml`` file. - IMP's Brazilian help texts are in the ``horde/imp/locale/pt_BR/help.xml`` file. When, for any desired application and locale, there is no ``help.xml`` file available, Horde's help system will use the application's ``locale/en/help.xml`` file, instead. The help files must be encoded in the UTF-8 character set. There is no compilation step involved: Every modification to, or addition of, a ``help.xml`` file takes immediate effect. Syntax of the help files ~~~~~~~~~~~~~~~~~~~~~~~~ Each help file must consist of syntactically valid XML code. There are no predefined entities beyond the XML standard entities: - < (less than) - > (greater than) - & (ampersand) - ' (ASCII apostrophe) - " (ASCII quotation mark) Any character available in the language's preferred character set can be entered as a numerical character reference (based on its Unicode scalar value), such as `` `` for the No-Break Space character. The general structure can be learned from the existing examples; of course, the XML tags must be syntactically valid, and properly nested. .. Note:: A PHP error message like ``Undefined index: url in /var/www/horde/lib/Horde/Help.php`` means that you have mis-spelled, or omitted, an attribute (``url``, in this example). The following tags are available: +---------+--------+---------------+-------------------------------+ | XML-Tag | Parent | Attributes | Purpose | +=========+========+===============+===============================+ | help | — | — | List of help texts | +---------+--------+---------------+-------------------------------+ | entry | help | id | Help text | +---------+--------+---------------+-------------------------------+ | title | entry | — | Entry in the help index | +---------+--------+---------------+-------------------------------+ | heading | entry | — | Level 2 heading | +---------+--------+---------------+-------------------------------+ | para | entry | — | Paragraph | +---------+--------+---------------+-------------------------------+ | ref | para | module, entry | Link into the help system | +---------+--------+---------------+-------------------------------+ | eref | para | url | External link | +---------+--------+---------------+-------------------------------+ | href | para | app, url | Link into a Horde application | +---------+--------+---------------+-------------------------------+ | b | para | — | Bold text | +---------+--------+---------------+-------------------------------+ | i | para | — | Italic text on new line | +---------+--------+---------------+-------------------------------+ | pre | entry | — | Example box | +---------+--------+---------------+-------------------------------+ | tip | entry | — | Tip/hint box | +---------+--------+---------------+-------------------------------+ | warn | entry | — | Warning box | +---------+--------+---------------+-------------------------------+ The elements marked ``para``, in the Parent column, may also be used within ``pre``, ``tip``, and ``warn`` elements. The following attributes are available: +---------+-----------+----------------------------------+ | XML-Tag | Attribute | Purpose/Syntax | +=========+===========+==================================+ | entry | id | Anchor | +---------+-----------+----------------------------------+ | ref | module | Index of Horde application, see | | | | ``horde/config/registry.php`` | | +-----------+----------------------------------+ | | entry | Id of help file entry, see above | +---------+-----------+----------------------------------+ | eref | url | arbitrary URL | +---------+-----------+----------------------------------+ | href | app | Index of Horde application, see | | | | ``horde/config/registry.php`` | | +-----------+----------------------------------+ | | url | URL within Horde application | +---------+-----------+----------------------------------+ Examples:: selecting attachments UW-IMAP quirk Address search The `Translation Tool`_ will introduce additional attributes: +---------+-----------+--------------------------------+ | XML-Tag | Attribute | Purpose/Syntax | +=========+===========+================================+ | entry | state | See `Finishing a translation`_ | | +-----------+--------------------------------+ | | md5 | Used internally | +---------+-----------+--------------------------------+ Reference from the Horde applications ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The typical incantation, e.g.:: will yield a link, adorned with the ``help.png`` icon, to the entry marked ``id="compose-buttons"`` in the IMP help file pertaining to the user's current locale. Usually, these links are placed in the template files, next to the item to be explained by the pertinent help entry. The Horde menu will usually contain a general help item, which is generated in ``lib/Horde/Menu.php``. Creating a new translation ~~~~~~~~~~~~~~~~~~~~~~~~~~ If necessary, define a suitable language name. E.g., if you plan to add an Austrian translation, you would use ``de_AT`` as your language name. For Horde, and for all relevant applications, copy the ``help.xml`` files from the ``locale/en/`` subdirectories to the ``locale/ll/`` subdirectories, creating them if necessary. Translate each new ``locale/ll/help.xml`` file, leaving all tags and attributes unchanged. Just translate the text between the tags. .. Important:: The ``id`` attributes must be kept unchanged, under any circumstances. If the application is already translated and only the help files are missing, then be sure to use the same terminology as the existing translation. In any case, try to use a lucid, coherent terminology. Finishing a translation ~~~~~~~~~~~~~~~~~~~~~~~ If you want to submit a translation to be included in the Horde code base, make sure that you have completed all translations. Then run:: horde-translation make-help -l ll This will mark all entries as being up-to-date so that you or other translators can later see which entries have been changed since then. Updating an existing translation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Run:: horde-translation update-help -l ll This will merge your existing help file with all changes from the original, English help file since your last translation. Changed entries are marked with the attribute ``state="changed"``, new entries with ``state="new"``. The original entry from the English help file is added in a comment below a changed entry, so that you can easily compare them. Translate the remaining English phrases, like discussed above. When your finished, remove any English entries and follow the steps at `Finishing a translation`_. Extending existent translations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you feel that some feature should be better explained to the end user, then proceed as following: 1. Determine, whether you will have to extend an existing entry, or add a new one. 2. In the latter case, choose a suitable ``id`` for your new help entry. 3. Edit the existing entry in, or add a new entry to, the application's ``en/help.xml`` file. Change all translations needed in your site in the same way. Be sure to use the same ``id`` everywhere. 4. If you have added a new entry, you might want to add a link to it from a template, as explained above in `Reference from the Horde applications`_. 5. If you feel that your enhancement may be useful to other users, file an enhancement request at http://bugs.horde.org/ with a patch including your changes to the template and the ``help.xml`` files. 6. In any case, keep notes of your changes, so you can apply them to later versions if necessary. tmpjWNuGb/horde-5.1.5/docs/RELEASE_NOTES0000644000175000017500000000372012233761316017263 0ustar mathieumathieunotes['fm']['focus'] = array(Horde_Release::FOCUS_MINORSECURITY, Horde_Release::FOCUS_MINORFEATURE); /* Mailing list release notes. */ $this->notes['ml']['changes'] = <<notes['fm']['changes'] = <<notes['name'] = 'Horde'; $this->notes['fm']['project'] = 'horde'; $this->notes['fm']['branch'] = 'Horde 5'; tmpjWNuGb/horde-5.1.5/docs/PERFORMANCE0000644000175000017500000002215512233761316016777 0ustar mathieumathieu========================= Horde Performance Guide ========================= :Contact: horde@lists.horde.org .. contents:: Contents Some tips on performance tuning systems for Horde. This does not cover hardware tuning or even low level system (network, filesystem, etc) tuning. Don't apply the following tuning hints blindly. Test your applications before and after the changes under the conditions that are important for you. For some people it's more important to make them as fast as possible for a small user base, others require the applications to scale well under a high load. Some of these hints might even make the applications slower under certain conditions or using a certain hardware. Linux Tuning ============ * Recompile RPMS for your architecture (e.g. i586, i686, athlon, etc). This applies most to your Apache, PHP, IMAP, and POP3 packages. Webserver/PHP tuning ==================== * Consider a PHP accelerator program. See for example `The Zend Performance Suite`_, the `Alternative PHP Cache`_, eAccelerator_, or XCache_. These accelerators speed up access by caching the compiled PHP code, eliminating the need to recompile the code for every single page load. **This is probably the easiest way to improve the performance of Horde**. See Autoloading_ further down to get even more out of some of those accelerators. * Enable PHP output compression in the Horde configuration. Do not enable compression in the PHP configuration (i.e. in ``php.ini``), because certain scripts don't work well with compression and Horde takes care of disabling compression conditionally. * Keep the include path defined in ``php.ini`` as short as possible, with the most frequently used library paths first. You don't need to include the local directory ``.`` because Horde always uses full paths instead of relative paths. * Use an optimized ``php.ini``: start with ``php.ini-recommended`` in your PHP dsitribution. * Don't run PHP session garbage collection too often if using a slow storage medium (like SQL). (See ``session.gc_probability`` in ``php.ini``) * If you have a large number of sessions and are using PHP's default file based session handler, consider storing them in hashed directory levels. (See ``session.save_path`` at http://www.php.net/session) * Consider using a faster storage medium for sessions, such as a tmpfs (if storing sessions locally) or memcache (for storing session information that can be accessed by multiple servers). * Only load as many Apache and PHP extensions as needed (to reduce memory usage). * Use statically compiled Apache modules, including the PHP module. * Use compiler optimizations (--prefer-non-pic, -O3, -march -mcpu, -msse, -mmmx, -mfpmath=sse, etc.) * If using SSL with a large site, consider a hardware SSL accelerator. * Use shared memory for the Apache SSL cache if possible. * To improve caching of static content if accessing Apache SSL with Internet Explorer, try setting longer expiration periods:: ExpiresActive On ExpiresByType image/png "now plus 1 month" ExpiresByType image/gif "now plus 1 month" ExpiresByType text/javascript "now plus 1 month" ExpiresByType application/x-javascript "now plus 1 month" ExpiresByType text/css "now plus 1 month" .. Note:: You must compile the ``mod_expires`` extension into Apache in order to use these directives. .. Warning:: This might cause problems if you upgrade Horde and the users' browsers still use the old file versions. * Disable DNS lookups in your Apache logging, or use a caching DNS server on the web server host. * Enable Apache keepalives. * You can configure Horde to serve all images, style sheets and/or static javascript files from a different server. This could be a very lightweight server without PHP (and other CGI modules) builtin. If using SSL to serve all pages, the images/js server will also have to serve SSL content or else browsers will complain about non-secure content in a secure page. Since this server does not need to handle dynamic content, it would be wise to use a high-performance server with low memory and/or system resource requirements (this `IBM Article`_ can provide further information). You need to set the ``themesuri`` and/or ``jsuri`` parameters in ``config/registry.php`` for all applications and copy all ``themes`` and/or ``js`` directories in the same directory layout to the other server. * Your webserver should use Expires headers to make sure static content can be cached on the user's browser. For example, to make lighttpd set an expiration date on all graphics, javascript files, and stylesheets, add the following to ``lighttpd.conf``:: $HTTP["url"] =~ "\.(jpg|gif|png|js|css)$" { expire.url = ( "" => "access 1 months" ) } * Enable caching in horde. Several applications make heavy use of caching and, if enabled, you will see a significant increase in performance. * Enable caching/compression of javascript and CSS. See `Yahoo's Analysis`_ which concludes that "[r]educing the number of HTTP requests has the biggest impact on reducing response time". Caching via filesystem is HIGHLY RECOMMENDED: it is also the only way of caching that reliably works on all browsers. Caching can also be done via horde caching, but the cache-busters used to generate unique URLs when the cached content changes do not work 100% reliably across all browsers. * It is highly recommended to install the horde_lz4 package to activate compression for Horde data. horde_lz4 is a minimal package that does real-time compression. On modern CPUs, this compression is as fast as an (unoptimized) memcpy action, making the compression essentially 'free' when compared to uncompressed data. horde_lz4 can be installed via PECL (see INSTALL for further details). .. _`The Zend Performance Suite`: http://www.zend.com/horde.php .. _`Alternative PHP Cache`: http://www.php.net/apc .. _eAccelerator: http://eaccelerator.net/ .. _XCache: http://xcache.lighttpd.net/ .. _`IBM Article`: http://www.ibm.com/developerworks/web/library/wa-ltwebserv/ .. _`Yahoo's Analysis`: http://yuiblog.com/blog/2006/11/28/performance-research-part-1/ Sending Mail ============ * Generally using a local sendmail command to send mail will result in better peformance than using a SMTP connection. * Some MTA servers may be faster or more efficient than others. Consider switching to a faster format if needed. PostgreSQL tuning ================= * Do a ``VACUUM`` command periodically to tune your database. * Increase ``shared_buffers`` and ``sort_mem`` memory settings. * If web server and database is on the same unix host, use unix sockets instead of network connections for database access. MySQL tuning ============ * If web server and database is on the same unix host, use unix sockets instead of network connections for database access. * Enable mysql query cache if you have sufficient RAM. Edit your ``my.cnf`` file and add the following to the ``[mysqld]`` section (change the memory size to meet your needs):: set-variable = query_cache_size=128M Horde tuning ============ Autoloading ----------- * Horde automatically loads PHP source files on demand which relies on the PHP autoloading feature introduced with PHP 5 and the Horde Autoloader library. Both allow to limit the set of source code files pulled into the system to the minimal amount required to answer the current request. This saves memory and time but at the same time the Autoloader library has to map each class name to the path of the corresponding PHP file that holds the class definition. This procedure is expensive and can slow the system down. Fortunately the mapping is fixed unless files are added or removed which usually only happens during an upgrade. Thus Autoloading is amenable to caching and an easy way to improve the performance of the Horde Autoloader library, is to install the Autoloader Cache extension:: pear install horde/horde_autoloader_cache This library is not installed by default because it will unconditionally use any of the following cache backends and does not allow for any further configuration: `Alternative PHP Cache`_, XCache_, eAccelerator_, or the local temporary filesystem. It also doesn't detect the rare case when the file paths of any PHP class in Horde changes. In this case you either need to use the provided script to empty the cache:: horde-autoloader-cache-prune or empty the cache manually, e.g. by restarting the web server or deleting the cache file from the temporary directory. VFS --- * Try to avoid using a SQL backend for VFS. Many databases require binary data to be heavily escaped, resulting in storage sizes that are many times greater than the actual size of the data. File system VFS will normally provide much improved performance. Application tuning ================== * Some applications contain advanced features that might have a certain impact on the performance. These features can usually be turned off in the application's configuration and are explicitly described as being a performance hit in the configuration web frontend. tmpjWNuGb/horde-5.1.5/config/0000755000175000017500000000000012262230550015614 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/config/motd.php0000644000175000017500000000105512233761315017277 0ustar mathieumathieu
      Powered by Horde
      'Administrator'); $conf['prefs']['driver'] = 'Sql'; $conf['portal']['fixed_blocks'] = array(); $conf['imsp']['enabled'] = false; $conf['kolab']['enabled'] = false; $conf['log']['priority'] = 'INFO'; $conf['log']['ident'] = 'HORDE'; $conf['log']['name'] = LOG_USER; $conf['log']['type'] = 'syslog'; $conf['log']['enabled'] = true; tmpjWNuGb/horde-5.1.5/config/conf.xml0000644000175000017500000030327012233761315017276 0ustar mathieumathieu General Horde Settings false PHP Settings E_ALL & ~E_NOTICE 0 true 077 true URL Settings 2 0 1 2 3 $_SERVER['SERVER_NAME'] 30 30 false false rewrite Session Settings Horde true 0 nocache 604800 $_SERVER['SERVER_NAME'] / <strong>NOTE:</strong> These are only the <em>default</em> values for any database driven backends. You still need to configure the different systems like "Preferences" to actually <em>use</em> a database backend. SQL Database Settings These are the database settings for the traditional relational databases backends (e.g. databases that use SQL to manage its data). NoSQL Database Settings These are the database settings for the NoSQL database backends. These are databases generally optimized for scalability/availability, but do not use a standardized query language to interact with the data. LDAP Settings <strong>NOTE:</strong> These are only the <em>default</em> values for any LDAP driven backends. You still need to configure the different systems like "Preferences" to actually <em>use</em> a LDAP backend. Authentication Settings true true true false false list list input both imp horde_user false This authentication driver needs manual configuration not possible through this interface. Add the appropriate configuration lines at the end of the generated configuration file. See http://wiki.horde.org/AuthCompositeHowTo for details. localhost 21 crypt-des aprmd5 crypt crypt-blowfish crypt-des crypt-md5 crypt-sha256 crypt-sha512 md5-base64 md5-hex plain sha smd5 ssha localhost 143 tls none tls ssl false ssha aprmd5 crypt crypt-blowfish crypt-des crypt-md5 crypt-sha256 crypt-sha512 md5-base64 md5-hex msad plain sha smd5 ssha shadowAccount,inetOrgPerson (objectclass=shadowAccount) no 5 30 5 /bin/su php /etc/passwd crypt aprmd5 crypt crypt-blowfish crypt-des crypt-md5 crypt-sha256 crypt-sha512 md5-base64 md5-hex plain sha smd5 ssha false false localhost PAP PAP CHAP_MD5 MSCHAPv1 MSCHAPv2 horde php localhost localhost /usr/bin/smbclient ssha aprmd5 crypt crypt-blowfish crypt-des crypt-md5 crypt-sha256 crypt-sha512 md5-base64 md5-hex plain sha smd5 ssha false mysql mysql mysqli odbc pgsql unix localhost horde horde Some special tokens can be used in the sql query. They are replaced at the query stage:<ul> <li>"\L" will be replaced by the user's login</li> <li>"\P" will be replaced by the user's password</li> <li>"\O" will be replaced by the old user's login (required for update)</li></ul> Eg: "SELECT * FROM users WHERE uid = \L AND passwd = \P AND billing = 'paid'" ssha aprmd5 crypt crypt-blowfish crypt-des crypt-md5 crypt-sha256 crypt-sha512 md5-base64 md5-hex plain sha smd5 ssha false localhost 143 none none tls ssl mysql mysql odbc pgsql unix 5432 localhost horde horde horde_users user_uid user_pass none ssha aprmd5 crypt crypt-blowfish crypt-des crypt-md5 crypt-sha256 crypt-sha512 md5-base64 md5-hex plain sha smd5 ssha cyrus REMOTE_USER false false 5 5 Terms of Service Agreement Sign Up Settings false true Logging Settings true NOTICE EMERG ALERT CRIT ERR WARNING NOTICE INFO DEBUG HORDE file /tmp/horde.log true default default false Preferences Settings Sql uid Alarms Settings Sql 300 Groups Settings Sql cn memberUid posixGroup,hordeGroup objectclass posixGroup Permissions Settings Sql Shares Settings Shares are objects or lists that can be shared with other users, e.g. calendars that other users can be given read or write access to. Allow Sharing? false true true false false Share Caching Enabling share caching improves performance because the share backend will only be queried once per session. But it also increases the users' session sizes, and share changes won't take effect before the users log in the next time. false Shares Driver You can use different driver types for the Horde Share system. The default driver is the SQL-NG driver. Sqlng Kolab Sqlng Sql Caching Settings 86400 File eAccelerator must be built with --with-eaccelerator-shared-memory at compile time to allow caching. <strong>WARNING:</strong> The cache functionality has been removed with eAccelerator version 0.9.6. If you want to use the eAccelerator cache driver, you need version 0.9.5 or lower. 0 CSS Caching CSS caching packages all stylesheets used in a page into a single file sent to the browser. It also allows compression and optimization of this file to reduce the data size. Caching reduces server load, speeds up the user's browsing experience, and is HIGHLY RECOMMENDED. false true For filesystem caching to work, the "static" directory in the horde base must be writable by the user the web server is running as. If running Horde in a cluster (or behind a single web frontend), to use filesystem caching it is best to have every PHP backend server have access to a shared drive that is visible and mounted to the "static" directory on the web frontend. (NOTE: if you manually change the CSS files, you will need to manually delete the cached CSS static files to see the changes.) <strong>Requires a configured Horde caching backend.</strong> This method is STRONGLY DISCOURAGED. Browsers will likely cache this data and ignore updates, even though we append a "cache-busting" unique version parameter to the URL. You almost certainly want to use 'filesystem' instead. 86400 Javascript Caching Javascript caching packages all static javascript files used in a page into more efficient chunks to send to the browser. It also allows compression and optimizations of this file to reduce the data size. Caching reduces server load, speeds up the user's browsing experience, and is HIGHLY RECOMMENDED. false true For filesystem caching to work, the "static" directory in the horde base must be writable by the user the web server is running as. If running Horde in a cluster (or behind a single web frontend), to use filesystem caching it is best to have every PHP backend server have access to a shared drive that is visible and mounted to the "static" directory on the web frontend. <strong>Requires a configured Horde caching backend.</strong> This method is STRONGLY DISCOURAGED. Browsers will likely cache this data and ignore updates, even though we append a "cache-busting" unique version parameter to the URL. You almost certainly want to use 'filesystem' instead. php /opt/java/jre/bin/java /opt/java/jre/bin/java 604800 Theme Caching Theme caching optimizes display of themed elements. Caching reduces server load (specifically by dramatically reducing filesystem access), and is HIGHLY RECOMMENDED. <strong>Requires a configured Horde caching backend.</strong> false appversion The theme cache will be updated only when a new Horde version is installed. This is the RECOMMENDED setting for most installations. The theme cache is never checked for consistency. Once created, it will be used until the cache entry expires. 604800 Locking Settings Sql Tokens Settings Sql DAV Settings Sql Mailer Settings sendmail /usr/lib/sendmail -oi false false true DIGEST-MD5 CRAM-MD5 LOGIN PLAIN Format false Virtual File Storage Settings Session Handler Settings Builtin If you have configured a custom session extension in php.ini (such as native memcache sessions) then you should use this option. Horde doesn't force PHP to use the file-based session handler, so your php.ini settings settings will be deferred to. /tmp/ false false HTTP Proxy Settings If you need to use a proxy for fetching HTTP resources (feeds, security keys, external calendars or free/busy information, etc.), configure it here. Spell Checker Settings GnuPG Settings pool.sks-keyservers.net pool.sks-keyservers.net subkeys.pgp.net pgp.mit.edu 10 OpenSSL Settings Theme Settings false Image Manipulation Settings false Image Metadata Driver Settings Bundled MIME Detection Settings Country Lookup Settings Timezone Lookup Settings ftp://ftp.iana.org/tz/tzdata-latest.tar.gz Problem Reporting Settings false array() webmaster@example.com example.com true Menu Settings all all authenticated never authenticated all authenticated never all all authenticated never all all never authenticated authenticated never all all never authenticated authenticated never Portal Blocks Settings Fortune Configuration Account Info Configuration null /usr/bin/quota /bin/grep false /etc/mtab /usr/bin/finger uid false This will use the parameters set in the Kolab Groupware Server tab. You must enable Kolab integration for this to work. uid false User Capabilities and Constraints false true basic dynamic mobile smartmobile API Keys Settings Facebook Integration Settings If you want to allow your users to interact with their Facebook profiles, and you've set up the necessary settings on Facebook, you can enter the key and secret here. See http://wiki.horde.org/Doc/Admin/Config/Horde/Facebook for details. false Twitter Integration Settings If you want to allow your users to interact with their Twitter account, enable this section. You must setup an application on Twitter and obtain the OAuth secret and key from Twitter. See http://wiki.horde.org/Doc/Admin/Config/Horde/Twitter for details. false Url Shortening false TinyUrl Weather Services If you want to provide weather information to your users you must select a provider and provide your API keys. false 21600 21600 IMAP Server Settings If you intend to store user data like shares and groupware data on an IMAP server then you will need to ensure that the following fields correspond to your IMAP server setup. The IMAP groupware storage will use version 2 of the Kolab XML format. See http://wiki.kolab.org/Kolab_Format_Intro for details. false IMAP Server Settings localhost 143 tls none tls ssl example.com true IMSP Server Settings If you plan to use any of Horde's IMSP server support, enable this option and configure the server settings below. Note that you must still configure/enable specific IMSP support in the appropriate section. false IMSP Server Settings localhost 406 Plaintext /tmp/ /cyrus/usr/cyrus/bin/imtest LOGIN gssapi Kolab Server Settings <strong>*** IF YOU HAVE NO IDEA WHAT KOLAB IS THEN YOU CAN SAFELY IGNORE THIS TAB ***</strong><br /> Kolab is in no way required for normal Horde usage. If, however, you intend to use Horde as a webclient for Kolab then you will need to ensure that the following fields correspond to those required by your Kolab installation. You can find some of the required values in the <code> $KOLAB_ROOT/etc/kolab/kolab.conf</code> configuration file. Please note that the old iCal/vCard storage format has been dropped in favour of the new XML storage format &amp; IMAP folder annotations; subsequently the Horde Kolab modules will only work with version 2 of the Kolab server.<br /> If you would like to find out more about Kolab then please visit the Kolab community website at http://www.kolab.org/ false Kolab LDAP Server Settings localhost 389 dc=example,dc=com cn=nobody,cn=internal,dc=example,dc=com Kolab Cyrus IMAP Server Settings localhost 143 2000 example.com true Kolab SMTP Server Settings localhost 25 Kolab Free/Busy Application Settings Enter the leading part of the URL to the Kolab Free/Busy application here. This will usually be "https://localhost/freebusy" but if you installed it so that you reach the application at "https://freebusy.example.org" then you would enter "https://freebusy.example.org". The URL "https://freebusy.example.org/freebusy" would thus need the setting "https://freebusy.example.org/freebusy". https://localhost/freebusy A distributed hash table is a way of sharing data across multiple servers by associating a piece of data with a static key. It is useful for cache-like operations, since it is usually much faster to set and retrieve the data from the hash table than the underlying data storage driver. none localhost 11211 false false 0 true localhost 6379 The use of ActiveSync in the United States is PROHIBITED due to patent issues. If you are NOT in the United States, or you have a license to use ActiveSync, you may enable ActiveSync below and create an alias on your webserver to redirect /Microsoft-Server-ActiveSync to /horde/rpc.php. See http://wiki.horde.org/ActiveSync for more information. false Capabilities true 14 2.5 12 12.1 14 14.1 Autodiscovery full user hook Logging Ping Settings The Heartbeat Interval specifies the length of time, in seconds, that the server SHOULD wait before notifying the client of changes in a folder on the server. These settings allow you to indicate the allowable range for this setting. Note that not all clients will request this information. NOTE: Some Android devices do not implement this correctly. If you plan on synching Android devices, you should make sure that this range is wide enough to allow Android's default of 470 seconds. true 60 2700 480 60 15 tmpjWNuGb/horde-5.1.5/config/.htaccess0000644000175000017500000000001612233761315017415 0ustar mathieumathieuDeny from all tmpjWNuGb/horde-5.1.5/config/prefs.php0000644000175000017500000006012512233761315017456 0ustar mathieumathieu * * * $prefGroups * =========== * $prefGroups defines the preferences page in which a preference value will * appear in. * * Format: * ------- * - column: (string) Which column head this group will go under. * - desc: (string) Description shown under label. * - label: (string) Label for the group of settings. * - members: (array) List of displayable preferences contained in this * group. * - suppress: (boolean|function) If true, this group is not displayed. * - type: (string) The prefGroup type. * VALUES: * - identities: An identities screen. The identities screen will always * show all the identities prefs from the base Horde app, * along with the identity switching widget. * Additionally, applications can define additional * identity information in their prefs.php file that will * be displayed after the Horde-wide settings. * - [empty]: The default preferences screen. * DEFAULT: The default preferences screen. * * $_prefs * ======= * $_prefs defines the preferences used within an application. Each * preference is contained within a separate array entry, with the key being * the name of the preference. * * The following are OPTIONAL values for each entry: * * - advanced: (boolean) Mark pref as advanced. Will only be displayed if * user switches to advanced preferences mode. * VALUES: * - true: Advanced preference; hidden in basic preferences mode. * - false: Basic preference; shown regardless of preferences mode. * DEFAULT: false * * - help: (string) The help file identifier for this preference. * VALUES: * If present, a help icon will be displayed next to the preference. * Clicking on this icon will open the entry in the help viewer in * a popup window. * DEFAULT: No help icon is displayed * * - hook: (boolean) If true, the prefs_init hook will be run for this entry. * VALUES: * - true * - false * DEFAULT: false * * - locked: (boolean) Allow preference to be changed from the preferences * screen? * VALUES: * - true: Do not show this preference in the UI and don't allow * changing by any mechanism. * - false: Show this preference in the UI and allow changing. * DEFAULT: false * * - on_change: (function) A method to call when this prefs value is changed * in the UI. * VALUES: * Function * DEFAULT: None * * - on_init: (function) A method to call when initializing the value for * display on the UI page. Is passed one argument: the * Horde_Core_Prefs_Ui object. * VALUES: * Function * DEFAULT: None * * - requires: (array) A list of preferences that need to be set (i.e. * non-empty value) for this preference to be displayed. * VALUES: * Array of preference names * DEFAULT: None * * - requires_nolock: (array) A list of preferences that need to be unlocked * for this preference to be displayed. * VALUES: * Array of preference names * DEFAULT: None * * - suppress: (boolean|function) If true, suppresses display of the * preference in the UI. * VALUES: * - true * - false * DEFAULT: false * * * The UI display for a preference is controlled by the 'type' key. This key * controls how the preference is displayed on the preferences screen. If this * key is not present, the preference is treated as type 'implicit'. The * following is the list of types, with a description of further keys used * for each type. * * 'checkbox' * ---------- * Provides a checkbox (yes/no) entry. * * ADDITIONAL KEYS: * -desc: (string) The description text to use on the preferences page. * -value: (integer) 0 (or false) for unchecked, 1 (or true) for checked. * * 'enum' * ------ * Provides an enumeration (a/k/a selection) list in the UI. * * ADDITIONAL KEYS: * - desc: (string) The description text to use on the preferences page. * - escaped: (boolean) If true, values in 'enum' are already escaped. * DEFAULT: false * - enum: (array) [REQUIRED] The enumeration list. Keys will be used as the * the preference value; values are the text that will be displayed * in the selection list. * - value: (mixed) The value of the preference. Will be used to * auto-select the entry in the selection list. * * 'implicit' * ---------- * Preference used in an application but never directly shown to the viewer * via the preferences screen. * * ADDITIONAL KEYS: * - value: (mixed) The value of the preference. Will be used to * auto-select the entry in the selection list. * * 'link' * ------ * Provides a clickable link. * * This pref is a UI placeholder only and will not be stored in the preference * backend. * * ADDITIONAL KEYS: * - desc: (string) The link text. * - img: (string) An image file to display before the link. * DEFAULT: no image displayed * - url: (string) The URL to link to (unescaped). Only specify one of * 'url' or 'xurl'. * - xurl: (string) The URL to link to (escaped). Only specify one of 'url' * or 'xurl'. * * 'multienum' * ----------- * Provides an enumeration list in the UI that allows for multiple entries * to be selected. * * ADDITIONAL KEYS: * - desc: (string) The description text to use on the preferences page. * - escaped: (boolean) If true, values in 'enum' are already escaped. * DEFAULT: false * - enum: (array) [REQUIRED] The enumeration list. Keys will be used as the * the preference value; values are the text that will be displayed * in the selection list. * - value: (string) A serialized value containing the key(s) selected. All * keys will be auto-selected in the selection area. * * 'number' * -------- * Provides a small textbox to enter a natural number. Values entered for this * preference are automatically converted to a number value. * * ADDITIONAL KEYS: * - desc: (string) The description text to use on the preferences page. * - value: (integer) The preference value. * - zero: (boolean) By default, a number must be non-zero. If this is * true, zeros will be accepted as valid input. * * 'password' * ---------- * Provides a textbox for password entry (input characters will not be * displayed to the screen). * * ADDITIONAL KEYS: * - desc: (string) The description text to use on the preferences page. * - value: (string) The preference value. * * 'prefslink' * ----------- * Create a link to another preferences page. * * This pref is a UI placeholder only and will not be stored in the preference * backend. * * ADDITIONAL KEYS: * - app: (string) The application to link to. * DEFAULT: current application. * - desc: (string) The link text. * - group: (string) The preferences group to link to. * - img: (string) An image file to display before the link. * DEFAULT: no image displayed * * 'rawhtml' * --------- * Outputs the raw HTML string to the page. * * This pref is a UI placeholder only and will not be stored in the preference * backend. * * ADDITIONAL KEYS: * - value: (string) The raw (already escaped) HTML to output to the page. * * 'text' * ------ * Provides a single-line textbox. * * ADDITIONAL KEYS: * - desc: (string) The description text to use on the preferences page. * - value: (string) The preference value. * * 'textarea' * ---------- * Provides a multi-line textbox. * * ADDITIONAL KEYS: * - desc: (string) The description text to use on the preferences page. * - value: (string) The preference value. Lines should be separated * with the "\n" character. * * * Placeholder types - these prefs are UI placeholders only and will not * be stored in the preference backend. * * 'container' * ----------- * Used to indicate a list of preferences that MUST appear on the same page * for UI purposes. * * 'special' * --------- * Used as placeholder to indicate that the application will provide both the * UI display code and the subsequent preferences storage. * * This type REQUIRES a 'handler' parameter, which is the classname of an * object that implements Horde_Core_Prefs_Ui_Special. */ // *** Personal Information (Identities) Preferences *** $prefGroups['identities'] = array( 'column' => _("Your Information"), 'label' => _("Personal Information"), 'desc' => _("Change your personal information."), 'members' => array('id', 'fullname', 'from_addr', 'location'), 'type' => 'identities' ); // If you lock this preference, you must specify a value or a hook for it in // horde/config/hooks.php. $_prefs['id'] = array( 'value' => '', 'type' => 'text', 'desc' => _("Identity's name:") ); // If you lock this preference, you must specify a value or a hook for it in // horde/config/hooks.php. $_prefs['fullname'] = array( 'value' => '', 'type' => 'text', 'desc' => _("Your full name:") ); // If you lock this preference, you must specify a value or a hook for it in // horde/config/hooks.php. $_prefs['from_addr'] = array( 'value' => '', 'type' => 'text', 'desc' => _("The default e-mail address to use with this identity:") ); $_prefs['location'] = array( 'value' => '', 'type' => 'text', 'desc' => _("Default location to use for location-aware features.") ); // Set locked to true if you don't want the users to have multiple identities. $_prefs['default_identity'] = array( 'value' => 0 ); // Identities are built automatically from the default values of all // preferences from all applications that make up an identity. This only works // if no identities exist yet, or when creating new identities manually. If you // provide a default value for the complete identities list, it has to include // all preferences from all applications. $_prefs['identities'] = array( // default value = serialize(array()) 'value' => 'a:0:{}' ); $_prefs['confirm_email'] = array( // default value = serialize(array()) 'value' => 'a:0:{}' ); // *** Authentication Preferences *** $prefGroups['forgotpass'] = array( 'column' => _("Your Information"), 'label' => _("Account Password"), 'desc' => _("Set preferences to allow you to reset your password if you ever forget it."), 'members' => array( 'security_question', 'security_answer', 'alternate_email' ), 'suppress' => function() { try { $GLOBALS['injector']->getInstance('Horde_Core_Factory_Auth')->create()->hasCapability('update'); return false; } catch (Horde_Exception $e) {} return true; } ); $_prefs['security_question'] = array( 'value' => '', 'type' => 'text', 'desc' => _("Enter a security question which you will be asked if you need to reset your password, e.g. 'what is the name of your pet?':") ); $_prefs['security_answer'] = array( 'value' => '', 'type' => 'text', 'desc' => _("Insert the required answer to the security question:") ); $_prefs['alternate_email'] = array( 'value' => '', 'type' => 'text', 'desc' => _("Insert an email address to which you can receive the new password:") ); // *** Locale/Time Preferences *** $prefGroups['language'] = array( 'column' => _("Your Information"), 'label' => _("Locale and Time"), 'desc' => _("Set your preferred language, timezone and date preferences."), 'members' => array( 'language', 'sending_charset', 'timezone', 'twentyFour', 'date_format', 'date_format_mini', 'time_format', 'first_week_day' ) ); $_prefs['language'] = array( 'value' => '', 'type' => 'enum', 'enum' => array(), 'escaped' => true, 'desc' => _("Select your preferred language:"), 'on_init' => function($ui) { $enum = $GLOBALS['registry']->nlsconfig->languages; array_unshift($enum, _("Default")); $ui->prefs['language']['enum'] = $enum; }, 'on_change' => function() { global $prefs, $registry; $registry->setLanguageEnvironment($prefs->getValue('language')); foreach ($registry->listApps() as $app) { if ($registry->isAuthenticated(array('app' => $app, 'notransparent' => true))) { $registry->callAppMethod($app, 'changeLanguage'); } } } ); $_prefs['sending_charset'] = array( 'value' => 'UTF-8', 'advanced' => true, // Sending charset is locked by default. 'locked' => true, 'type' => 'enum', 'enum' => array_merge( array('' => _("Default")), $GLOBALS['registry']->nlsconfig->encodings_sort ), 'desc' => _("Default charset for sending e-mail messages:") ); $_prefs['timezone'] = array( 'value' => '', 'type' => 'enum', 'enum' => array(), 'desc' => _("Your current time zone:"), 'on_init' => function($ui) { $enum = Horde_Nls::getTimezones(); array_unshift($enum, _("Default")); $ui->prefs['timezone']['enum'] = $enum; }, ); $_prefs['twentyFour'] = array( 'value' => false, 'type' => 'checkbox', 'desc' => _("Display 24-hour times?") ); $_prefs['date_format'] = array( 'value' => '%x', 'type' => 'enum', 'enum' => array( '%x' => strftime('%x'), '%Y-%m-%d' => strftime('%Y-%m-%d'), '%d/%m/%Y' => strftime('%d/%m/%Y'), '%A, %B %d, %Y' => strftime('%A, %B %d, %Y'), '%A, %d. %B %Y' => strftime('%A, %d. %B %Y'), '%A, %d %B %Y' => strftime('%A, %d %B %Y'), '%a, %b %e, %Y' => strftime('%a, %b %e, %Y'), '%a, %b %e, %y' => strftime('%a, %b %e, %y'), '%a, %b %e' => strftime('%a, %b %e'), '%a, %e %b %Y' => strftime('%a, %e %b %Y'), '%a, %e %b %y' => strftime('%a, %e %b %y'), '%a %d %b %Y' => strftime('%a %d %b %Y'), '%a %x' => strftime('%a %x'), '%a %Y-%m-%d' => strftime('%a %Y-%m-%d'), '%e %b %Y' => strftime('%e %b %Y'), '%e. %b %Y' => strftime('%e. %b %Y'), '%e. %m %Y' => strftime('%e %m %Y'), '%e. %m.' => strftime('%e. %m.'), '%e. %B' => strftime('%e. %B'), '%e. %B %Y' => strftime('%e. %B %Y'), '%e. %B %y' => strftime('%e. %B %y'), '%B %e, %Y' => strftime('%B %e, %Y'), ), 'desc' => _("Choose how to display dates (full format):"), ); $_prefs['date_format_mini'] = array( 'value' => '%x', 'type' => 'enum', 'enum' => array( '%x' => strftime('%x'), '%Y-%m-%d' => strftime('%Y-%m-%d'), '%d/%m/%Y' => strftime('%d/%m/%Y'), '%a, %b %e, %Y' => strftime('%a, %b %e, %Y'), '%a, %b %e, %y' => strftime('%a, %b %e, %y'), '%a, %b %e' => strftime('%a, %b %e'), '%a, %e %b %Y' => strftime('%a, %e %b %Y'), '%a, %e %b %y' => strftime('%a, %e %b %y'), '%a %d %b %Y' => strftime ('%a %d %b %Y'), '%a %x' => strftime ('%a %x'), '%a %Y-%m-%d' => strftime ('%a %Y-%m-%d'), '%e %b %Y' => strftime('%e %b %Y'), '%e. %b %Y' => strftime('%e. %b %Y'), '%e. %m %Y' => strftime('%e %m %Y'), '%e. %m.' => strftime('%e. %m.'), '%b %e, %Y' => strftime('%b %e, %Y'), ), 'desc' => _("Choose how to display dates (abbreviated format):"), ); $_prefs['time_format'] = array( 'value' => '%X', 'type' => 'enum', 'enum' => array( '%X' => strftime('%X') . ' (' . _("Default") . ')', '%H:%M:%S' => strftime('%H:%M:%S') . ' (' . _("24-hour format") . ')', '%l:%M:%S %p' => strftime('%l:%M:%S %p'), '%R' => strftime('%R') . ' (' . _("24-hour format") . ')', '%l:%M %p' => strftime('%l:%M %p'), ), 'desc' => _("Choose how to display times:") ); $_prefs['first_week_day'] = array( 'value' => '0', 'type' => 'enum', 'enum' => array( '0' => _("Sunday"), '1' => _("Monday") ), 'desc' => _("Which day would you like to be displayed as the first day of the week?") ); // *** Categories/Labels Preferences *** $prefGroups['categories'] = array( 'column' => _("Your Information"), 'label' => _("Categories and Labels"), 'desc' => _("Manage the list of categories you have to label items with, and colors associated with those categories."), 'members' => array('categorymanagement') ); // UI for category management. $_prefs['categorymanagement'] = array( 'type' => 'special', 'handler' => 'Horde_Prefs_Special_Category' ); $_prefs['categories'] = array( 'value' => '' ); $_prefs['category_colors'] = array( 'value' => '' ); // *** Display Preferences *** $prefGroups['display'] = array( 'column' => _("Other Information"), 'label' => _("Display Preferences"), 'desc' => _("Set your startup application, color scheme, page refreshing, and other display preferences."), 'members' => array( 'initial_application', 'show_last_login', 'theme', 'summary_refresh_time', 'sidebar_width', 'menu_refresh_time', 'widget_accesskey' ) ); $_prefs['initial_application'] = array( 'value' => 'horde', 'type' => 'enum', 'enum' => array(), 'desc' => sprintf(_("What application should %s display after login?"), $GLOBALS['registry']->get('name')), 'on_init' => function($ui) { $enum = array(); $perms = $GLOBALS['injector']->getInstance('Horde_Perms'); foreach ($GLOBALS['registry']->listApps(array('active')) as $a) { if (file_exists($GLOBALS['registry']->get('fileroot', $a)) && (($perms->exists($a) && ($perms->hasPermission($a, $GLOBALS['registry']->getAuth(), Horde_Perms::READ) || $GLOBALS['registry']->isAdmin())) || !$perms->exists($a))) { $enum[$a] = $GLOBALS['registry']->get('name', $a); } } asort($enum); $ui->prefs['initial_application']['enum'] = $enum; }, ); $_prefs['show_last_login'] = array( 'value' => true, 'type' => 'checkbox', 'desc' => _("Show last login time when logging in?") ); // Last login time of user $_prefs['last_login'] = array( // value is a serialized array of the UNIX timestamp of the last login, // and the host that the last login was from. // value = serialize(array()) 'value' => 'a:0:{}' ); $_prefs['theme'] = array( 'value' => 'default', 'type' => 'enum', 'enum' => Horde_Themes::themeList(), 'desc' => _("Select your color scheme.") ); $_prefs['summary_refresh_time'] = array( 'value' => 300, 'type' => 'enum', 'enum' => array( 0 => _("Never"), 30 => _("Every 30 seconds"), 60 => _("Every minute"), 300 => _("Every 5 minutes"), 900 => _("Every 15 minutes"), 1800 => _("Every half hour") ), 'desc' => _("Refresh Portal View:") ); $_prefs['sidebar_width'] = array( 'value' => 210, 'type' => 'number', 'desc' => sprintf(_("Width of the %s menu on the left:"), $GLOBALS['registry']->get('name', 'horde')) ); $_prefs['menu_refresh_time'] = array( 'value' => 300, 'type' => 'enum', 'enum' => array( 0 => _("Never"), 30 => _("Every 30 seconds"), 60 => _("Every minute"), 120 => _("Every 2 minutes"), 300 => _("Every 5 minutes") ), 'desc' => _("Refresh Dynamic Menu Elements:") ); $_prefs['widget_accesskey'] = array( 'value' => true, 'type' => 'checkbox', 'desc' => _("Should access keys be defined for most links?") ); // The layout of the portal page. $_prefs['portal_layout'] = array( // value = serialize(array()) 'value' => 'a:0:{}' ); // *** Facebook Integration Preferences *** $prefGroups['facebook'] = array( 'column' => _("Other Information"), 'label' => _("Facebook Integration"), 'desc' => _("Set up integration with your Facebook account."), 'members' => array('facebookmanagement'), 'suppress' => function() { return (empty($GLOBALS['conf']['facebook']['enabled']) || empty($GLOBALS['conf']['facebook']['id']) || empty($GLOBALS['conf']['facebook']['secret'])); } ); $_prefs['facebookmanagement'] = array( 'type' => 'special', 'handler' => 'Horde_Prefs_Special_Facebook' ); $_prefs['facebook'] = array( // value = serialize(array()) 'value' => 'a:0:{}' ); // *** Twitter Intergration Preferences *** $prefGroups['twitter'] = array( 'column' => _("Other Information"), 'label' => _("Twitter Integration"), 'desc' => _("Set up integration with your Twitter account."), 'members' => array('twittermanagement'), 'suppress' => function() { return (empty($GLOBALS['conf']['twitter']['enabled']) || empty($GLOBALS['conf']['twitter']['key']) || empty($GLOBALS['conf']['twitter']['secret'])); } ); $_prefs['twittermanagement'] = array( 'type' => 'special', 'handler' => 'Horde_Prefs_Special_Twitter' ); $_prefs['twitter'] = array( // value = serialize(array()) 'value' => 'a:0:{}' ); // *** IMSP Intergration Preferences *** $prefGroups['imspauth'] = array( 'column' => _("Other Information"), 'label' => _("Alternate IMSP Login"), 'desc' => _("Use if name/password is different for IMSP server."), 'members' => array('imsp_auth_user', 'imsp_auth_pass'), 'suppress' => function() { return empty($GLOBALS['conf']['imsp']['enabled']); } ); $_prefs['imsp_auth_user'] = array( 'value' => '', 'type' => 'text', 'desc' => _("Alternate IMSP Username") ); $_prefs['imsp_auth_pass'] = array( 'value' => '', 'type' => 'password', 'desc' => _("Alternate IMSP Password") ); // *** SyncML Preferences *** $prefGroups['syncml'] = array( 'column' => _("Other Information"), 'label' => _("SyncML"), 'desc' => _("Configuration for syncing with PDAs, Smartphones and Outlook."), 'members' => array('syncmlmanagement'), 'suppress' => function() { return !class_exists('Horde_SyncMl_Backend'); } ); $_prefs['syncmlmanagement'] = array( 'type' => 'special', 'handler' => 'Horde_Prefs_Special_Syncml' ); // *** ActiveSync Preferences *** $prefGroups['activesync'] = array( 'column' => _("Other Information"), 'label' => _("ActiveSync"), 'desc' => _("Manage your ActiveSync devices."), 'members' => array('activesync_replyposition', 'activesyncmanagement'), 'suppress' => function() { return empty($GLOBALS['conf']['activesync']['enabled']); } ); $_prefs['activesyncmanagement'] = array( 'type' => 'special', 'handler' => 'Horde_Prefs_Special_Activesync' ); $_prefs['activesync_replyposition'] = array( 'type' => 'enum', 'desc' => _("Position of reply text when replying to email on your device. Note that some devices will always send the citation string at the end of the reply text."), 'enum' => array('bottom' => _("Bottom"), 'top' => _("Top")), 'value' => 'bottom', 'suppress' => function() { return empty($GLOBALS['conf']['activesync']['emailsync']); } ); // *** Internal Preferences *** // Last time login tasks were run. $_prefs['last_logintasks'] = array( // value = serialize(array()) 'value' => 'a:0:{}' ); // Track login upgrade tasks. $_prefs['upgrade_tasks'] = array( // value = serialize(array()) 'value' => 'a:0:{}' ); tmpjWNuGb/horde-5.1.5/config/spelling.php0000644000175000017500000000104012233761315020143 0ustar mathieumathieu array( /* The language to fall back on if we cannot determine one any other * way (user choice or preferences). If empty, we will try to * negotiate with the browser using HTTP_ACCEPT_LANGUAGE. */ 'language' => '', ), /* Languages */ 'languages' => array( 'ar_OM' => '‭Arabic (Oman) ‮(عربية)', 'ar_SY' => '‭Arabic (Syria) ‮(عربية)', 'id_ID' => 'Bahasa Indonesia', 'bs_BA' => 'Bosanski', 'bg_BG' => '‭Bulgarian (БългарÑки)', 'ca_ES' => 'Català', 'cs_CZ' => 'ÄŒeský', 'zh_CN' => '‭Chinese (Simplified) (简体中文)', 'zh_TW' => '‭Chinese (Traditional) (正體中文)', 'da_DK' => 'Dansk', 'de_DE' => 'Deutsch', 'en_US' => '‭English (American)', 'en_GB' => '‭English (British)', 'en_CA' => '‭English (Canadian)', 'es_ES' => 'Español', 'et_EE' => 'Eesti', 'eu_ES' => 'Euskara', 'fa_IR' => '‭Farsi (Persian) ‮(ÙØ§Ø±Ø³ÛŒ)', 'fr_FR' => 'Français', 'gl_ES' => 'Galego', 'el_GR' => '‭Greek (Ελληνικά)', 'he_IL' => '‭Hebrew ‮(עברית)', 'hr_HR' => 'Hrvatski', 'is_IS' => 'Ãslenska', 'it_IT' => 'Italiano', 'ja_JP' => '‭Japanese (日本語)', 'km_KH' => '‭Khmer (ážáž˜áŸ‚ážš)', 'ko_KR' => '‭Korean (한국어)', 'lv_LV' => 'LatvieÅ¡u', 'lt_LT' => 'Lietuvių', 'mk_MK' => '‭Macedonian (МакедонÑки)', 'hu_HU' => 'Magyar', 'nl_NL' => 'Nederlands', 'nb_NO' => '‭Norsk (bokmÃ¥l)', 'nn_NO' => '‭Norsk (nynorsk)', 'pl_PL' => 'Polski', 'pt_PT' => 'Português', 'pt_BR' => 'Português do Brasil', 'ro_RO' => 'Română', 'ru_RU' => '‭Russian (РуÑÑкий)', 'sk_SK' => 'Slovenský', 'sl_SI' => 'Slovensko', 'fi_FI' => 'Suomi', 'sv_SE' => 'Svenska', 'th_TH' => '‭Thai (ภาษาไทย)', 'uk_UA' => '‭Ukrainian (УкраїнÑька)', ), /* Aliases for languages with different browser and gettext codes */ 'aliases' => array( 'ar' => 'ar_SY', 'bg' => 'bg_BG', 'bs' => 'bs_BA', 'ca' => 'ca_ES', 'cs' => 'cs_CZ', 'da' => 'da_DK', 'de' => 'de_DE', 'el' => 'el_GR', 'en' => 'en_US', 'es' => 'es_ES', 'et' => 'et_EE', 'fa' => 'fa_IR', 'fi' => 'fi_FI', 'fr' => 'fr_FR', 'gl' => 'gl_ES', 'he' => 'he_IL', 'hu' => 'hu_HU', 'id' => 'id_ID', 'is' => 'is_IS', 'it' => 'it_IT', 'ja' => 'ja_JP', 'km' => 'km_KH', 'ko' => 'ko_KR', 'lt' => 'lt_LT', 'lv' => 'lv_LV', 'mk' => 'mk_MK', 'nl' => 'nl_NL', 'nn' => 'nn_NO', 'no' => 'nb_NO', 'pl' => 'pl_PL', 'pt' => 'pt_PT', 'ro' => 'ro_RO', 'ru' => 'ru_RU', 'sk' => 'sk_SK', 'sl' => 'sl_SI', 'sv' => 'sv_SE', 'th' => 'th_TH', 'uk' => 'uk_UA', ), /* Charsets. These differ somewhat on different systems; see below for * for a set of BSD charset names. */ 'charsets' => array( 'ar_OM' => 'windows-1256', 'ar_SY' => 'windows-1256', 'bg_BG' => 'windows-1251', 'bs_BA' => 'ISO-8859-2', 'cs_CZ' => 'ISO-8859-2', 'el_GR' => 'ISO-8859-7', 'et_EE' => 'ISO-8859-13', 'fa_IR' => 'UTF-8', 'he_IL' => 'UTF-8', 'hu_HU' => 'ISO-8859-2', 'ja_JP' => 'SHIFT_JIS', 'km_KH' => 'UTF-8', 'ko_KR' => 'EUC-KR', 'lt_LT' => 'ISO-8859-13', 'lv_LV' => 'windows-1257', 'mk_MK' => 'ISO-8859-5', 'pl_PL' => 'ISO-8859-2', 'ru_RU' => 'windows-1251', 'ru_RU.KOI8-R' => 'KOI8-R', 'sk_SK' => 'ISO-8859-2', 'sl_SI' => 'ISO-8859-2', 'th_TH' => 'TIS-620', 'uk_UA' => 'windows-1251', 'zh_CN' => 'GB2312', 'zh_TW' => 'BIG5', ), /* Multibyte charsets */ 'multibyte' => array( 'BIG5' => true, 'EUC-KR' => true, 'GB2312' => true, 'SHIFT_JIS' => true, 'UTF-8' => true, ), /* Right-to-left languages */ 'rtl' => array( 'ar_OM' => true, 'ar_SY' => true, 'fa_IR' => true, 'he_IL' => true, ), /* Preferred charsets for email traffic if not the languages' default * charsets. */ 'emails' => array( 'ja_JP' => 'ISO-2022-JP', ), /* Available charsets for outgoing email traffic. */ 'encodings' => array( 'windows-1256' => _("Arabic (Windows-1256)"), 'ARMSCII-8' => _("Armenian (ARMSCII-8)"), 'ISO-8859-13' => _("Baltic (ISO-8859-13)"), 'ISO-8859-14' => _("Celtic (ISO-8859-14)"), 'ISO-8859-2' => _("Central European (ISO-8859-2)"), 'GB2312' => _("Chinese Simplified (GB2312)"), 'BIG5' => _("Chinese Traditional (Big5)"), 'KOI8-R' => _("Cyrillic (KOI8-R)"), 'windows-1251' => _("Cyrillic (Windows-1251)"), 'KOI8-U' => _("Cyrillic/Ukrainian (KOI8-U)"), 'ISO-8859-7' => _("Greek (ISO-8859-7)"), 'ISO-8859-8-I' => _("Hebrew (ISO-8859-8-I)"), 'ISO-2022-JP' => _("Japanese (ISO-2022-JP)"), 'EUC-KR' => _("Korean (EUC-KR)"), 'ISO-8859-10' => _("Nordic (ISO-8859-10)"), 'ISO-8859-3' => _("South European (ISO-8859-3)"), 'TIS-620' => _("Thai (TIS-620)"), 'ISO-8859-9' => _("Turkish (ISO-8859-9)"), 'UTF-8' => _("Unicode (UTF-8)"), 'VISCII' => _("Vietnamese (VISCII)"), 'ISO-8859-1' => _("Western (ISO-8859-1)"), 'ISO-8859-15' => _("Western (ISO-8859-15)"), ), /* Multi-language spelling support. */ 'spelling' => array( 'cs_CZ' => '-T latin2 -d czech', 'da_DK' => '-d dansk', 'de_DE' => '-T latin1 -d deutsch', 'el_GR' => '-T latin1 -d ellinika', 'en_CA' => '-d canadian', 'en_GB' => '-d british', 'en_US' => '-d american', 'es_ES' => '-d espanol', 'fr_FR' => '-d francais', 'hu_HU' => '-d hungarian', 'it_IT' => '-T latin1 -d italian', 'nl_NL' => '-d nederlands', 'pl_PL' => '-d polish', 'pt_BR' => '-d br', 'pt_PT' => '-T latin1 -d portuguese', 'ru_RU' => '-d russian', 'sl_SI' => '-d slovensko', 'sv_SE' => '-d svenska', ) ); /* BSD charsets. */ if (strpos(PHP_OS, 'BSD') !== false) { $horde_nls_config['charsets'] = array_merge($horde_nls_config['charsets'], array( 'bs_BA' => 'ISO8859-2', 'cs_CZ' => 'ISO8859-2', 'el_GR' => 'ISO8859-7', 'et_EE' => 'ISO8859-13', 'hu_HU' => 'ISO8859-2', 'ja_JP' => 'SHIFT_JIS', 'ko_KR' => 'EUC-KR', 'lt_LT' => 'ISO8859-13', 'lv_LV' => 'windows-1257', 'mk_MK' => 'ISO8859-5', 'pl_PL' => 'ISO8859-2', 'sk_SK' => 'ISO8859-2', 'sl_SI' => 'ISO8859-2', )); } /* Turkish locales. */ if (version_compare(PHP_VERSION, '5.5', 'ge')) { $horde_nls_config['aliases']['tr'] = 'tr_TR'; $horde_nls_config['charsets']['tr_TR'] = (strpos(PHP_OS, 'BSD') === false) ? 'ISO-8859-9' : 'ISO8859-9'; $horde_nls_config['languages']['tr_TR'] = 'Türkçe'; $horde_nls_config['spelling']['tr_TR'] = '-d tr'; } tmpjWNuGb/horde-5.1.5/config/mime_drivers.php0000644000175000017500000004021112233761315021016 0ustar mathieumathieu array( 'icons' => array( 'default' => 'text.png', 'message/*' => 'mail.png', 'unknown/*' => 'binary.png', 'video/*' => 'video.png', 'application/pgp-signature' => 'encryption.png', 'application/x-pkcs7-signature' => 'encryption.png', 'application/octet-stream' => 'binary.png' ) ), /* Default text driver. */ 'simple' => array( 'handles' => array( 'text/*' ), 'icons' => array( 'default' => 'text.png' ) ), /* Plain text driver. */ 'plain' => array( 'inline' => true, 'handles' => array( 'text/plain' ), 'icons' => array( 'default' => 'text.png' ) ), /* Default audio driver. */ 'audio' => array( 'handles' => array( 'audio/*' ), 'icons' => array( 'default' => 'audio.png' ) ), /* Default smil driver. */ 'smil' => array( 'inline' => true, 'handles' => array( 'application/smil' ), 'icons' => array( 'default' => 'video.png' ) ), /* HTML display. */ 'html' => array( // NOTE: Inline HTML viewing is DISABLED by default. 'inline' => false, 'handles' => array( 'text/html' ), 'icons' => array( 'default' => 'html.png' ), // Check for phishing exploits? 'phishing_check' => true, /* Size limit for the post-processing tidy operation (default: no * limit). Must be specified in bytes. */ 'tidy_size_limit' => false ), /* Enriched text display. */ 'enriched' => array( 'inline' => true, 'handles' => array( 'text/enriched' ), 'icons' => array( 'default' => 'text.png' ) ), /* Richtext display. */ 'richtext' => array( 'inline' => true, 'handles' => array( 'text/richtext' ), 'icons' => array( 'default' => 'text.png' ) ), /* SyntaxHighlighter driver. * http://alexgorbatchev.com/SyntaxHighlighter/ */ 'syntaxhighlighter' => array( 'inline' => true, 'handles' => array( 'application/javascript', 'application/x-extension-bat', 'application/x-extension-c', 'application/x-extension-cpp', 'application/x-extension-cs', 'application/x-extension-css', 'application/x-extension-html', 'application/x-extension-js', 'application/x-extension-perl', 'application/x-extension-php', 'application/x-extension-php3s', 'application/x-extension-phps', 'application/x-extension-pl', 'application/x-extension-py', 'application/x-extension-python', 'application/x-extension-rb', 'application/x-extension-ruby', 'application/x-extension-sh', 'application/x-extension-vb', 'application/x-extension-vba', 'application/x-extension-xml', 'application/x-httpd-php', 'application/x-httpd-php3', 'application/x-httpd-phps', 'application/x-javascript', 'application/x-perl', 'application/x-php', 'application/x-python', 'application/x-ruby', 'application/x-sh', 'application/x-shellscript', 'application/x-tcl', 'application/xml', 'text/cpp', 'text/css', 'text/diff', 'text/x-c', 'text/x-c++', 'text/x-c++hdr', 'text/x-c++src', 'text/x-chdr', 'text/x-csrc', 'text/x-diff', 'text/x-java', 'text/x-patch', 'text/x-sql', 'text/x-tex', 'text/xml', ), 'icons' => array( 'default' => 'text.png', 'application/javascript' => 'script-js.png', 'application/x-extension-c' => 'source-c.png', 'application/x-extension-cpp' => 'source-c.png', 'application/x-extension-cs' => 'source-c.png', 'application/x-extension-css' => 'html.png', 'application/x-extension-html' => 'html.png', 'application/x-extension-js' => 'script-js.png', 'application/x-extension-php' => 'php.png', 'application/x-extension-php3s' => 'php.png', 'application/x-extension-phps' => 'php.png', 'application/x-extension-py' => 'source-python.png', 'application/x-extension-python' => 'source-python.png', 'application/x-extension-xml' => 'xml.png', 'application/x-httpd-php' => 'php.png', 'application/x-httpd-php3' => 'php.png', 'application/x-httpd-phps' => 'php.png', 'application/x-javascript' => 'script-js.png', 'application/x-php' => 'php.png', 'application/x-python' => 'source-python.png', 'application/x-sh' => 'shell.png', 'application/x-shellscript' => 'shell.png', 'application/xml' => 'xml.png', 'text/cpp' => 'source-c.png', 'text/css' => 'html.png', 'text/x-c' => 'source-c.png', 'text/x-c++' => 'source-c.png', 'text/x-c++hdr' => 'source-c.png', 'text/x-c++src' => 'source-c.png', 'text/x-chdr' => 'source-h.png', 'text/x-csrc' => 'source-c.png', 'text/x-java' => 'source-java.png', 'text/xml' => 'xml.png', ), ), /* Tar file display. * To access gzipped files, the zlib library must have been built into PHP * (with the --with-zlib option). */ 'tgz' => array( 'inline' => true, 'handles' => array( 'application/gzip', 'application/x-compressed-tar', 'application/x-gtar', 'application/x-gzip', 'application/x-gzip-compressed', 'application/x-tar', 'application/x-tgz' ), 'icons' => array( 'default' => 'compressed.png' ) ), /* Zip file display. */ 'zip' => array( 'inline' => true, 'handles' => array( 'application/x-compressed', 'application/x-zip-compressed', 'application/zip' ), 'icons' => array( 'default' => 'compressed.png' ) ), /* RAR archive display. */ 'rar' => array( 'inline' => true, 'handles' => array( 'application/x-rar', 'application/x-rar-compressed' ), 'icons' => array( 'default' => 'compressed.png' ) ), /* MS Word display. * This driver requires AbiWord to be installed. * AbiWord homepage: http://www.abisource.com/ */ 'msword' => array( // Disabled by default 'disable' => true, 'handles' => array( 'application/msword', 'application/vnd.ms-word' ), 'icons' => array( 'default' => 'msword.png' ), // REQUIRED: Location of the AbiWord binary 'location' => '/usr/bin/abiword' ), /* MS Excel display. * This driver requires Gnumeric to be installed. * Gnumeric homepage: http://projects.gnome.org/gnumeric/ */ 'msexcel' => array( // Disabled by default 'disable' => true, 'handles' => array( 'application/msexcel', 'application/x-msexcel', 'application/vnd.ms-excel' ), 'icons' => array( 'default' => 'msexcel.png' ), // REQUIRED: Location of the ssconvert binary 'location' => '/usr/bin/ssconvert' ), /* MS Powerpoint display. * This driver requires ppthtml, included with xlhtml, to be installed. * xlhtml homepage: http://chicago.sourceforge.net/xlhtml/ */ 'mspowerpoint' => array( // Disabled by default 'disable' => true, 'handles' => array( 'application/mspowerpoint', 'application/vnd.ms-powerpoint' ), 'icons' => array( 'default' => 'mspowerpoint.png' ), // REQUIRED: Location of the ppthtml binary 'location' => '/usr/bin/ppthtml' ), /* vCard display. */ 'vcard' => array( 'inline' => true, 'handles' => array( 'text/directory', 'text/vcard', 'text/x-vcard' ), 'icons' => array( 'default' => 'vcard.png' ) ), /* RPM archive display. */ 'rpm' => array( // Disabled by default 'disable' => true, 'handles' => array( 'application/x-rpm' ), 'icons' => array( 'default' => 'rpm.png' ), // REQUIRED: Location of the rpm binary 'location' => '/usr/bin/rpm' ), /* Debian archive display. */ 'deb' => array( // Disabled by default 'disable' => true, 'handles' => array( 'application/x-deb', 'application/x-debian-package' ), 'icons' => array( 'default' => 'deb.png' ), // REQUIRED: Location of the dpkg binary 'location' => '/usr/bin/dpkg' ), /* Secure multipart (RFC 1847) display. */ 'security' => array( 'inline' => true, 'handles' => array( 'multipart/encrypted', 'multipart/signed' ), 'icons' => array( 'default' => 'encryption.png' ) ), /* Image display. */ 'images' => array( 'handles' => array( 'image/*' ), 'icons' => array( 'default' => 'image.png' ) ), /* MS-TNEF Attachment display. */ 'tnef' => array( 'handles' => array( 'application/ms-tnef' ), 'icons' => array( 'default' => 'binary.png' ) ), /* Digest message (RFC 2046 [5.2.1]) display. */ 'rfc822' => array( 'handles' => array( 'message/rfc822', 'x-extension/eml' ), 'icons' => array( 'default' => 'mail.png' ) ), /* Mail report messages (RFC 3452) display. */ 'report' => array( 'inline' => true, 'handles' => array( 'multipart/report' ), 'icons' => array( 'default' => 'mail.png' ) ), /* OpenOffice.org/StarOffice document display. */ 'ooo' => array( 'handles' => array( 'application/vnd.stardivision.calc', 'application/vnd.stardivision.draw', 'application/vnd.stardivision.impress', 'application/vnd.stardivision.math', 'application/vnd.stardivision.writer', 'application/vnd.sun.xml.calc', 'application/vnd.sun.xml.calc.template', 'application/vnd.sun.xml.draw', 'application/vnd.sun.xml.draw.template', 'application/vnd.sun.xml.impress', 'application/vnd.sun.xml.impress.template', 'application/vnd.sun.xml.math', 'application/vnd.sun.xml.writer', 'application/vnd.sun.xml.writer.global', 'application/vnd.sun.xml.writer.template', 'application/vnd.oasis.opendocument.presentation', 'application/vnd.oasis.opendocument.spreadsheet', 'application/vnd.oasis.opendocument.text' ), 'icons' => array( 'default' => 'ooo_calc.png', 'application/vnd.stardivision.calc' => 'ooo_calc.png', 'application/vnd.stardivision.draw' => 'ooo_draw.png', 'application/vnd.stardivision.impress' => 'ooo_impress.png', 'application/vnd.stardivision.math' => 'ooo_math.png', 'application/vnd.stardivision.writer' => 'ooo_writer.png', 'application/vnd.sun.xml.calc' => 'ooo_calc.png', 'application/vnd.sun.xml.calc.template' => 'ooo_calc.png', 'application/vnd.sun.xml.draw' => 'ooo_draw.png', 'application/vnd.sun.xml.draw.template' => 'ooo_draw.png', 'application/vnd.sun.xml.impress' => 'ooo_impress.png', 'application/vnd.sun.xml.impress.template' => 'ooo_impress.png', 'application/vnd.sun.xml.math' => 'ooo_math.png', 'application/vnd.sun.xml.writer' => 'ooo_writer.png', 'application/vnd.sun.xml.writer.global' => 'ooo_writer.png', 'application/vnd.sun.xml.writer.template' => 'ooo_writer.png', 'application/vnd.oasis.opendocument.presentation' => 'ooo_impress.png', 'application/vnd.oasis.opendocument.spreadsheet' => 'ooo_calc.png', 'application/vnd.oasis.opendocument.text' => 'ooo_writer.png' ) ), /* Portable Document Format (PDF) display. */ 'pdf' => array( 'handles' => array( 'application/pdf', 'application/x-pdf', 'image/pdf' ), 'icons' => array( 'default' => 'pdf.png' ) ), /* RTF display. * This driver requires UnRTF to be installed. * UnRTF homepage: http://www.gnu.org/software/unrtf/unrtf.html */ 'rtf' => array( // Disabled by default 'disable' => true, 'handles' => array( 'application/rtf', 'text/rtf' ), 'icons' => array( 'default' => 'text.png' ), // REQUIRED: location of the unrtf binary 'location' => '/usr/bin/unrtf' ), /* WordPerfect document display. * This driver requires wpd2html to be installed. * libwpd homepage: http://libwpd.sourceforge.net/ */ 'wordperfect' => array( // Disabled by default 'disable' => true, 'handles' => array( 'application/vnd.wordperfect', 'application/wordperf', 'application/wordperfect', 'application/wpd', 'application/x-wpwin' ), 'icons' => array( 'default' => 'wordperfect.png' ), // REQUIRED: location of the wpd2html binary 'location' => '/usr/bin/wpd2html' ) ); tmpjWNuGb/horde-5.1.5/config/registry.d/0000755000175000017500000000000012262230550017706 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/config/registry.d/README0000644000175000017500000000077512233761315020605 0ustar mathieumathieuThis directory can hold registry configuration snippets. Any PHP file (*.php) is read; all other files are ignored and so are for information only. Snippets can contain anything that would go in registry.php - one or more applications, tree blocks, conditionals, etc. Scripts that install or update files in this directory should always touch() the registry.d directory after completion to ensure that its modification time has changed; that way Horde will know to drop any cached configuration information. tmpjWNuGb/horde-5.1.5/config/registry.php0000644000175000017500000002315212233761315020206 0ustar mathieumathieu_detectWebroot(); $this->applications = array( 'horde' => array( 'initial_page' => 'services/portal/index.php', 'name' => _("Horde"), 'provides' => 'horde', ), 'imp' => array( 'name' => _("Mail"), 'provides' => array( 'mail', 'contacts/favouriteRecipients' ) ), 'ingo' => array( 'name' => _("Filters"), 'provides' => array( 'filter', 'mail/blacklistFrom', 'mail/showBlacklist', 'mail/whitelistFrom', 'mail/showWhitelist', 'mail/applyFilters', 'mail/canApplyFilters', 'mail/showFilters' ), 'menu_parent' => 'imp' ), 'sam' => array( 'name' => _("Spam"), // Add this line to registry.local.php if you want Sam to handle the // blacklist and whitelist filters instead of Ingo: // $this->applications['sam']['provides'] = array('mail/blacklistFrom', 'mail/showBlacklist', 'mail/whitelistFrom', 'mail/showWhitelist'); 'menu_parent' => 'imp' ), 'imp-menu' => array( 'app' => 'imp', 'menu_parent' => 'imp', 'status' => 'topbar', ), 'kronolith' => array( 'name' => _("Calendar"), 'provides' => 'calendar', ), 'kronolith-menu' => array( 'status' => 'topbar', 'app' => 'kronolith', 'topbar_params' => array( 'id' => 'menu' ), 'menu_parent' => 'kronolith', ), 'turba' => array( 'name' => _("Address Book"), 'provides' => array( 'contacts', 'clients/getClientSource', 'clients/clientFields', 'clients/getClient', 'clients/getClients', 'clients/addClient', 'clients/updateClient', 'clients/deleteClient', 'clients/searchClients' ), ), 'turba-menu' => array( 'app' => 'turba', 'menu_parent' => 'turba', 'status' => 'topbar', ), 'nag' => array( 'name' => _("Tasks"), 'provides' => 'tasks', ), 'nag-menu' => array( 'status' => 'topbar', 'app' => 'nag', 'topbar_params' => array( 'id' => 'menu' ), 'menu_parent' => 'nag', ), 'mnemo' => array( 'name' => _("Notes"), 'provides' => 'notes', ), 'mnemo-menu' => array( 'status' => 'topbar', 'app' => 'mnemo', 'menu_parent' => 'mnemo', ), 'others' => array( 'name' => _("Others"), 'status' => 'heading', ), 'trean' => array( 'name' => _("Bookmarks"), 'provides' => 'bookmarks', 'menu_parent' => 'others' ), 'trean-menu' => array( 'status' => 'topbar', 'app' => 'trean', 'menu_parent' => 'trean', ), 'ansel' => array( 'name' => _("Photos"), 'provides' => 'images', 'menu_parent' => 'others' ), 'wicked' => array( 'name' => _("Wiki"), 'provides' => 'wiki', 'menu_parent' => 'others' ), 'devel' => array( 'name' => _("Development"), 'status' => 'heading', 'menu_parent' => 'others', ), 'chora' => array( 'name' => _("Version Control"), 'menu_parent' => 'devel' ), 'chora-menu' => array( 'status' => 'topbar', 'app' => 'chora', 'menu_parent' => 'chora', ), 'whups' => array( 'name' => _("Tickets"), 'provides' => 'tickets', 'menu_parent' => 'devel', ), 'whups-menu' => array( 'status' => 'topbar', 'app' => 'whups', 'menu_parent' => 'whups', ), 'luxor' => array( 'name' => _("X-Ref"), 'menu_parent' => 'devel' ), 'info' => array( 'name' => _("Information"), 'status' => 'heading', 'menu_parent' => 'others', ), 'klutz' => array( 'name' => _("Comics"), 'menu_parent' => 'info' ), 'jonah' => array( 'name' => _("News"), 'provides' => 'news', 'menu_parent' => 'info' ), 'jonah-menu' => array( 'status' => 'topbar', 'app' => 'jonah', 'menu_parent' => 'jonah', ), 'office' => array( 'name' => _("Office"), 'status' => 'heading', 'menu_parent' => 'others', ), 'hermes' => array( 'name' => _("Time Tracking"), 'menu_parent' => 'office', 'provides' => 'time' ), 'hermes-stopwatch' => array( 'status' => 'topbar', 'app' => 'hermes', 'topbar_params' => array( 'id' => 'stopwatch', ), 'menu_parent' => 'hermes', ), 'hermes-menu' => array( 'status' => 'topbar', 'app' => 'hermes', 'topbar_params' => array( 'id' => 'menu' ), 'menu_parent' => 'hermes', ), 'sesha' => array( 'name' => _("Inventory"), /* Uncomment this line if you want Sesha to provide queue and * version names instead of Whups: */ // 'provides' => array('tickets/listQueues', 'tickets/getQueueDetails', 'tickets/listVersions', 'tickets/getVersionDetails'), 'menu_parent' => 'office', ), 'kolab' => array( 'name' => _("Kolab"), 'menu_parent' => 'myaccount' ), 'myaccount' => array( 'name' => _("My Account"), 'status' => 'heading', 'menu_parent' => 'others', ), 'gollem' => array( 'name' => _("File Manager"), 'menu_parent' => 'others', 'provides' => 'files', ), 'gollem-menu' => array( 'status' => 'topbar', 'app' => 'gollem', 'menu_parent' => 'gollem', ), 'passwd' => array( 'name' => _("Password"), 'menu_parent' => 'myaccount' ), 'website' => array( 'name' => _("Web Site"), 'status' => 'heading', 'menu_parent' => 'others', ), 'agora' => array( 'name' => _("Forums"), 'provides' => 'forums', 'menu_parent' => 'website' ), 'ulaform' => array( 'name' => _("Forms"), 'menu_parent' => 'website' ), 'vilma' => array( 'name' => _("Mail Admin"), 'menu_parent' => 'administration' ), 'content' => array( 'status' => 'hidden' ), 'timeobjects' => array( 'status' => 'hidden', 'provides' => 'timeobjects' ) ); tmpjWNuGb/horde-5.1.5/config/hooks.php.dist0000644000175000017500000010416712233761315020431 0ustar mathieumathieugetAuth('bare'); // // $array = posix_getpwnam($user); // $gecos_array = explode(',', $array['gecos']); // return empty($gecos_array) // ? $user // : $gecos_array[0]; // // // // Example #2: Set the fullname from LDAP information. In this // // example we look if a Spanish name exists and return this or // // the standard 'cn' entry if not. // if (is_null($username)) { // return $value; // } // // $ldapServer = 'ldap.example.com'; // $ldapPort = '389'; // $searchBase = 'ou=people,o=example.com'; // // $ds = @ldap_connect($ldapServer, $ldapPort); // // $searchResult = @ldap_search($ds, $searchBase, 'uid=' . $username); // $information = @ldap_get_entries($ds, $searchResult); // if (($information === false) || ($information['count'] == 0)) { // $name = ''; // } else { // $name = ($information[0]['cn;lang-es'][0] != '') // ? $information[0]['cn;lang-es'][0] // : $information[0]['cn'][0]; // } // // ldap_close($ds); // // return empty($name) // ? $username // : $name; // } // } // // PREFERENCES CHANGE: See above for documentation. // public function prefs_change($pref) // { // switch ($pref) { // case 'theme': // $GLOBALS['notification']->push('You changed your theme to ' . $GLOBALS['prefs']->getValue('theme') . '.'); // break; // } // } // // PREAUTHENTICATE HOOK: See above for description of format. // public function preauthenticate($userId, $credentials) // { // // Example #1: Make Horde respect the Unix convention of not // // allowing login when a file named /etc/nologin exist. // return !file_exists('/etc/nologin'); // // // // Example #2: Block access to Horde if the remote host exists in // // the DNSBL. It requires the PEAR Net_DNSBL package. // $dnsbl = new Net_DNSBL(); // $dnsbl->setBlacklists(array( // 'sbl-xbl.spamhaus.org', // 'bl.spamcop.net' // )); // return !$dnsbl->isListed($_SERVER['REMOTE_ADDR']); // // // // Example #3: Block access for user 'foo'. // return ($userId != 'foo'); // // // // Example #4: Create credentials needed by the LDAP Horde_Auth // // driver for adding/deleting/updating users. // $entry = array( // 'dn' => 'uid=' . $userId . ',ou=People,dc=example.com', // 'cn' => isset($credentials['user_fullname']) ? $credentials['user_fullname'] : $userId, // 'sn' => $userId, // 'objectclass' => array( // 'top', // 'person', // 'qmailuser', // 'CourierMailAccount', // ), // 'mailhost' => 'mail.example.com', // 'mailMessageStore' => '/home/mail/' . $userId, // 'homeDirectory' => '/home/mail/' . $userId, // 'mailbox' => '/Maildir', // 'homeDirectory' => '/Maildir', // 'uid' => $userId, // 'accountStatus' => 'active', // 'mailQuota' => '104857600S', // 'mail' => $userId, // 'uidNumber' => 501, // 'gidNumber' => 501, // 'deliveryMode' => 'nolocal' // ); // // // Need to check for new users (password) and edited users // // (user_pass_2) // if (isset($credentials['password'])) { // $entry['userPassword'] = '{MD5}' . base64_encode(pack('H*', md5($credentials['password']))); // } elseif (isset($credentials['user_pass_2'])) { // $entry['userPassword'] = '{MD5}' . base64_encode(pack('H*', md5($credentials['user_pass_2']))); // } // $entry['deliveryMode'] = 'nolocal'; // // return array( // 'userId' => $userId, // 'credentials' => $entry // ); // } // // POSTAUTHENTICATE HOOK: See above for description of format. // public function postauthenticate($userId, $credentials) // { // // Example #1: Validating the user's right to login to Horde by // // by consulting group membership in an LDAP directory. That // // way, if your Horde installation is configured to authenticate // // against IMP which in turn authenticate via IMAP, it is still // // possible to limit access to Horde by group membership. The // // following example had been made with an MS Active Directory in // // mind. Note that if the LDAP directory is unavailable or some // // other error occur, authentication will fail. // $ldapServer = 'ad.example.com'; // $ldapPort = '389'; // // // Note that credential is sent plain-text in this case, so don't // // use privileged account here or setup SSL (by using port 636 // // above). // $binddn = 'cn=WithoutPrivilege,dc=ulaval-dev,dc=ca'; // $bindpw = 'Remember this is sent in the clear unless SSL is used'; // $searchBase = 'ou=People,dc=example,dc=com'; // // // Attribute to match $userId against in search // $userAttr = 'sAMAccountName'; // // // Group membership attribute, need to be all lowercase // $groupAttr = 'memberof'; // // // Attribute to check for right to use Horde // $groupdn = 'cn=HordeUser,ou=People,dc=example,dc=com'; // $ret = false; // // $ds = @ldap_connect($ldapServer, $ldapPort); // // if (@ldap_bind($ds, $binddn, $bindpw)) { // $searchResult = @ldap_search($ds, $searchBase, $userAttr . '=' . $userId, array($groupAttr), 0, 1, 5); // if ($information = @ldap_get_entries($ds, $searchResult)) { // // Make pattern case-insensitive // $pattern = '/' . $groupdn . '/i'; // foreach ($information[0][$groupAttr] as $group) { // if (preg_match($pattern, $group)) { // $ret = true; // break; // } // } // } // } // // ldap_close($ds); // // return $ret; // } // // USERNAME HOOK: See above for description of format. // public function authusername($userId, $toHorde) // { // // Example #1: Append the virtual domain to the username. // // ex. $HTTP_HOST = 'mail.mydomain.com', $userId = 'myname' returns: // // 'myname@mydomain.com' // $vdomain = preg_replace('|^mail\.|i', '', getenv('HTTP_HOST')); // $vdomain = Horde_String::lower($vdomain); // // if ($toHorde) { // return $userId . '@' . $vdomain; // } // // return (substr($userId, -strlen($vdomain)) == $vdomain) // ? substr($userId, 0, -strlen($vdomain) - 1) // : $userId; // // // // Example #2: Convert username to all lowercase. This might be // // necessary if an authentication backend is case insensitive to // // take into account that Horde's preference system is case // // sensitive. // // ex. $userId = 'MyName' returns: 'myname' // return $toHorde // ? Horde_String::lower($userId) // : $userId; // // // // Example #3: Map the LDAP "uid" back to the LDAP "mail" // // attribute in case both are allowed user IDs for login. // if (!$toHorde) { // return $userId; // } // $ldapServer = 'localhost'; // $ldapPort = '389'; // $searchBase = 'dc=example,dc=com'; // $binddn = 'cn=manager,' . $searchBase; // $bindpw = 'PASSWORD'; // // $ds = @ldap_connect($ldapServer, $ldapPort); // $searchResult = @ldap_search($ds, $searchBase, 'uid=' . $userId); // $information = @ldap_get_entries($ds, $searchResult); // if (($information !== false) && ($information['count'] > 0)) { // $userId = $information[0]['mail'][0]; // } // return $userId; // } // // APPLICATION AUTHENTICATED HOOK: See above for format. // public function appauthenticated() // { // // Code to run when an application is first authenticated // } // // PRE-PUSH HOOK: See above for format. // public function pushapp() // { // // Code to run immediately before the app is switched to horde // } // // POST-PUSH HOOK: See above for format. // public function pushapp_post() // { // // Code to run immediately after the app is successfully switched to // // horde // } // // ADD CSS HOOK: See above for description of format. // public function cssfiles($theme) // { // return array( // '/file/path/to/css' => 'uri/to/css' // ); // } /** * Modify the browser object. * * @param Horde_Core_Browser $browser The browser object. */ // public function browser_modify($browser) // { // // Example #1: Mark all browsers as mobile. Useful if this // // particular Horde installation is dedicated solely to serving // // mobile devices. // $browser->setMobile(true); // } /** * Allow altering or validating data submitted by a user during a signup * request before any attempts are made to add them to the system. * * @param array $info TODO * * @return array TODO */ // public function signup_preprocess($info) // { // $info['user_name'] = Horde_String::lower($info['user_name']); // return $info; // } /** * Callback when a signup is queued for administrative approval. * * @param string $userId The username. * @param array $data TODO */ // public function signup_queued($userId, $data) // { // // Example #1: Send a notification message to the web server // // administrator's e-mail address. // $ $aders = array( // 'To' => $_SERVER['SERVER_ADMIN'], // 'From' => $_SERVER['SERVER_ADMIN'], // 'Subject' => 'New ' . $GLOBALS['registry']->get('name', 'horde') . ' Signup' // ); // // try { // $extraFields = Horde::callHook('signup_getextra'); // } catch (Horde_Exception $e) {} // // $msg = _("A new signup has been received and is awaiting your approval.") . // "\n\n" . // $this->_signup_queued_walkdata($extraFields, $data) . // "\n" . // sprintf(_("You can approve this signup at %s"), Horde::url('admin/user.php', true, array('append_session' => -1))); // // $GLOBALS['injector']->getInstance('Horde_Mail')->send($_SERVER['SERVER_ADMIN'], $headers, $msg); // } // // // Helper function for signup_queued Example #1 // private function _signup_queued_walkdata($fields, $data) // { // $msg = ''; // foreach ($data as $field => $value) { // if (in_array($field, array('password', 'url'))) { // continue; // } // // if (is_array($value)) { // $msg .= $this->_signup_queued_walkdata($fields, $value); // } else { // $field = isset($fields[$field]['label']) // ? $fields[$field]['label'] // : $field; // $msg .= "$field: $value\n"; // } // } // return $msg; // } /** * Provide any extra fields which need to be filled in when a * non-registered user wishes to sign up. * * @return array An array containing the following keys: * - desc: Any help text attached to the field * - label: The text that the user will see attached to this field * - params: Any allowed parameter to Horde_Form field types * - readonly: (boolean) Whether this editable * - required: (boolean) Whether this field is mandatory * - type: Any allowed Horde_Form field type */ // public function signup_getextra() // { // // Example #1: A hypothetical case where we would want to store // // extra information about a user into a turba sql address book. All // // this example does is include the attributes.php file from turba. // // NOTE: You NEED Turba to be correctly installed before you can use // // this example. // return Horde::loadConfiguration('attributes.php', 'attributes', 'turba'); // } /** * TODO * * @param string $userId The username. * @param array $extra A hash with the extra information requested via * the signup_getextra hook. * @param string $password The password. */ // public function signup_addextra($userId, $extra, $password) // { // // Example #1: Continuation of Example #1 from signup_getextra(). // // Here we connect to the database using the sql parameters // // configured in $conf and store the extra fields in turba_objects, // // using the $userId as the key for the object and values from the // // $extra array. You could create your own sql syntax or code to // // store this in whichever backend you require. // // NOTE: You NEED Turba to be correctly installed before you can use // // this example. It also assumes you are using an SQL backend. // $db = $GLOBALS['injector']->getInstance('Horde_Db_Adapter'); // // $fields = $values = $markers = array(); // foreach ($extra as $field => $value) { // $fields[] = 'object_' . Horde_String::lower($field); // $markers[] = '?'; // $values[] = Horde_String::convertCharset($value, 'UTF-8', $db->getCharset()); // } // $fields[] = 'object_id'; // $markers[] = '?'; // $values[] = $userId; // // $query = 'INSERT INTO turba_objects ( owner_id, ' . implode(', ', $fields) . ')'; // $query .= ' VALUES ( \'admin\', ' . implode(', ', $markers) . ')'; // $db->insert($query, $values); // } /** * Alter the share list. * * @param string $userId TODO * @param TODO $perm TODO * @param string $owner TODO * @param array $share_list TODO * * @return array The altered share list. */ // public function share_list($userId, $perm, $owner, $share_list) // { // return $share_list; // } /** * Hook called if a user tries to make an action that is under permission * control that they don't have sufficient permissions for. It can be * used to show the user a custom message including HTML code (via the * notification system), or to interrupt the code flow and send the user * to a different page. * * @param string $app Horde application. * @param string $permission Permission that failed. */ // public function perms_denied($app, $permission) // { // // Example #1: Provide link to upgrade script in notification // // message. // $GLOBALS['notification']->push(sprintf('Permission denied. Click
      HERE to upgrade %s.', $app, $GLOBALS['registry']->get('name')), 'horde.error', array('content.raw')); // } /** * IMSP share init. TODO * * @param TODO $share_obj TODO * @param string $app TODO */ // public function share_init($share_obj, $app) // { // global $cfgSources, $prefs, $session; // // // TODO: Move to turba? // if (($app == 'turba') && // (!empty($cfgSources['imsp']['use_shares']))) { // // Only do this once per session or when this session variable // // is purposely unset. // if ($session->get('horde', 'imsp_synched')) { // return; // } // // $results = Net_IMSP_Utils::synchShares($share_obj, $cfgSources['imsp']); // if (!$results instanceof PEAR_Error) { // $session->set('horde', 'imsp_synched') = true; // // // Now deal with adding or removing address books from prefs. // // FIXME: Updating prefs seems to hang the server. Narrowed // // down to the fact that $prefs->setValue() also attempts to // // call a hook. (Commenting out the callHook call fixes). Can // // anyone verify this on their install? // $dirty = false; // $abooks = $prefs->getValue('addressbooks'); // $abooks = empty($abooks) // ? array() // : explode("\n", $prefs->getValue('addressbooks')); // // if (count($results['removed'] > 0)) { // foreach ($results['removed'] as $sharename) { // $key = array_search($sharename, $abooks); // if ($key === true) { // unset($abooks[$key]); // $dirty = true; // } // } // } // // if (count($results['added']) > 0) { // foreach ($results['added'] as $sharename) { // if (array_search($sharename, $abooks) === false) { // $abooks[] = $sharename; // $dirty = true; // } // } // } // // if ($dirty) { // $result = $prefs->setValue('addressbooks', implode("\n", $abooks)); // } // // // We have to save the connection info for the imsp server // // since the share_modify hook will not occur from within // // turba's context. // $session->set('horde', 'imsp_config', $cfgSources['imsp']['params']); // } // } // } /** * IMSP share modify. TODO * * @param TODO $share TODO */ // public function share_modify($share) // { // global $injector, $session, $share; // // $params = unserialize($share->get('params')); // if (is_array($params) && // !empty($params['source']) && // ($params['source'] == 'imsp') && // ($config = $session->get('horde', 'imsp_config'))) { // // Ensure we don't try to change ownership. // $params = @unserialize($share->get('params')); // $bookName = $params['name']; // if (strpos($bookName, $share->get('owner')) !== 0) { // throw new Horde_Exception('Changing ownership of IMSP address books is not supported.'); // } // // // Update the ACLS // $perms = $share->getPermission(); // $users = $injector->getInstance('Horde_Perms')->getUserPermissions(); // foreach ($users as $user => $perm) { // $acl = Net_IMSP_Utils::permsToACL($perm); // $result = Net_IMSP_Utils::setACL($config, $bookName, $user, $acl); // } // } // } /** * ActiveSync hook for determing a Horde username from an email address. * * @param string $email The email address * * @return string The username to use to authenticate to Horde with. */ // public function activesync_get_autodiscover_username($email) // { // return substr($email, 0, strpos($email, '@')); // } /** * ActiveSync hook for overriding the XML output. Takes an array of * autodiscover parameters and returns the raw XML string to send to the * client. USING THIS HOOK MEANS YOU ARE RESPONSIBLE FOR SENDING CORRECT * XML TO THE CLIENT. ACTIVESYNC WILL SEND THIS STRING AS-IS. ONLY USE THIS * IF YOU KNOW WHAT YOU ARE DOING! * * @param array $params The array of available Autodiscover parameters. * * @return string The XML string. */ // public function activesync_autodiscover_xml(array $params) // { // } /** * ActiveSync hook for modifying the various Autodiscover values before * the XML string is build by the ActiveSync server code. Use, e.g., if you * need to alter the value of the host before sending it to the client. * * @param array $params The array of Autodiscover parameters. * * @return array The possibly modified array of Autodiscover parameters. */ // public function activesync_autodiscover_parameters(array $params) // { // return $params; // } /** * Activesync hook for providing additional checks before allowing a device * to be paired with the server for the first time. * * @param Horde_ActiveSync_Device $device The device object. * * @return boolean|integer True on success (device passed checks) or a * Horde_ActiveSync_Status:: constant on failure. */ // public function activesync_create_device(Horde_ActiveSync_Device $device) // { // return true; // } /** * ActiveSync hook for providing additional policy checks on a device * after it has already been paired. Useful for enforcing things like * only allowing certain user agents to connect etc... * * @param Horde_ActiveSync_Device $device The device object. * * @return boolean|integer True on success (device passed checks) or a * Horde_ActiveSync_Status:: constant on failure. */ // public function activesync_device_check(Horde_ActiveSync_Device $device) // { // return true; // } } tmpjWNuGb/horde-5.1.5/themes/0000755000175000017500000000000012262230550015634 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/themes/default/0000755000175000017500000000000012262230550017260 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/themes/default/info.php0000644000175000017500000000004212233761325020727 0ustar mathieumathieu•rIbìCcdrÂæææ—ÚÐÐ>,ëÚ”ˆ·Šjm“a~vvóÃÃÃÝÝÝ’ŸÓs .[»2ˆ0ß ¸AÞ0oŸ>‰Oç¢î!׃ƒµÁ7+»€¹íØ"mCCÂcÆ…–¡þ¦›ó)ðýýýh×eggfÔ-2”úÉÊ…AØ\æ»ú†&f?Ð+·¶¶¼c¿ËQ(;Ào˜š_\~|fŽàýâ’7ö2†U†B—WÞõuö "q^¾,…› Ì$Jæàð°ot¼{`xsk›a­T|Ò‹<àa¥ÀL ÷ûG'€ßøœWtuã‘RÿùÙ‰AÒÏÈ.­ºfëõ,×ø¼}Ú„7ÈPÿ4=2˜ŸŸG•<‘øú=6Ô_f¹<ädîï«ø¦ö¨OãëUTÖhÛ³‰n¹´+”°§Ð¨æ–ìÃbQÈØ#XÙÛO[us›¶½—L.‡=‹Ö×üÒ²sD<â܃äÝï1 ¾à^¨[80HÚÞŽèê$¢BInt~qIƒåR"ª‚Õ35=ƒ#Ï×c~qeUƒåü²T„ù?†GÕæàõÌ‚ã m¿øzÔÐÅoyMµøË$Íö¡ÑÀÃY€xè:ÅÚ¬AðÚÆ&®§~4³gT¦2‚+¨ ¢ö! 'ì®™Wˆ¤©e%¯¬Šàm"0¿·¿—,¬ãåóR$V›ƒoLL/˜…zѹÏ&€F™QZÛè— ‡.JûððHX×”_þn·ÄŒPRfîðø67Býp×–At#2ŠK‰¨™g ÞÛ›[,ÿðVif <œ”( ÛÄÂ;TX-ƇYŽ Bm>ÑOà`CÌêúÆu[7(Šð©\ZÓà— §}¿ŒŒŒÐ¯O8Â`× #p#Ô÷&Ö ú̈¢R"jonYù†Éʽ½=RTá\Y+ƒó“"µ9ø<Ї{Ïáuàñ…ØMAM½olÜÁô fkV`Í¢$wv÷p#Ô%cƒ>7B@DÍ<±–>¡ŠŽ·xrÒ ™ø½ýsvPem=6"[ R›ƒwÔ/t#´¬ €Ç/Å*¸¶ÒÄÄú“¹T5¶âF¨ïn[2ˆf ì5uóƒÆFX°ƒ`EÀªÃÆüW_ÌþÐWDö«rµ9xGÅÑŒØÐ´t €¼jEˆ%°•ðŠ8:>›šœ&ÔÝ?“šù½‘n„úö¦ƒèF¤ð‰èW<°­í}{꺼"Ú—¼j·³œªêT+‚Ë/S›ƒSp$6’1÷ ¤G/YŠ% ؈ü²Ê{áØ8bY>¡€}wëgºN÷B}chÆ ©L¦2âe ½ãâ¶½³«anÇáæÁŠÀ÷‚KØ# ëÙ¹4¶´â­Ñ;0ô¯›æðìWQ"T›ƒá}wl”7ÊÎŒ­pô—Ô?¦xkø?NÔb9ŽŽŽb^ÖÕý_Sæa~m`J}­—At#~Ï/&¢&Nl–W”ååNVn`Ì“8NZËÉ›wff†ÞZmkd—ªÍáÓ²×5ôÃﵤááÓ_Câx|ºvwwOVÙúeS[ø¤¸¼’Î7´¼‰HHñŽGò‰|ü£±%Ñ õ•® ƒ¤m4#xEDÔØÑ“nÄ –#TŠjëéIÀ͇ï-x;¡õ25;§afû'\-ÞÞÞFpV‘à¯Ò0wó¥ÿÌÐÓÓƒ›Å/—N:âM]¼á·2æáFG<.¶.DÔ—:Æ ¢ñœWDD<# RÓÌvhl‚îüé¢ãcs{ÛŠ$aÄ‹"C&S3€Á¾‚uð6ǧC…¤ Ä|DR*‡%ÿ‡0sR&§¦ ï¹íS_Þ¸Í …R©º> Jˆ¨‰ƒ;%–ª¿jnÛ"Wª½±ú‡GY^ûJǨº¶‘Ã2'™œºgÁ©fò¡5‚ð4eieUm&NžLýSûƒJ„å#“ãS3 ˆ$Õe94µJQôÁá+¦Öô(ûa¬P,éé„(Œ¿¦ùMTrê%CS @÷™¼‚þáÔB,' *™¥gãø—'UvBVcSÓŠw½¹|¡…»ß_ñÚ–ö)ܼy<«¡ ¤ÁÑq˜3‚¤þ¡uóB êï× .¢¾¸ª!õ…¦Þ…@Ôß®è^ô 6½ïüõì"IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/sidebar-split.png0000644000175000017500000000012712233761325024337 0ustar mathieumathieu‰PNG  IHDR€6½jIDATxcسo?û‡XŽ8Ûðû÷Ÿ†Èñ£µ1(›ßIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/redbox_spinner.gif0000644000175000017500000001524412233761325024605 0ustar mathieumathieuGIF89aBBóÿÿÿ²²²„„„"""^^^âââ<<<!ÿ NETSCAPE2.0!þCreated with ajaxload.info!ù ,BBÿÈI«½TÌ»ÿqÖ±UÅa€lK‰'e–áÞ aÚr,Á+œ0X4¤^epXÁ!Gw@ š•YfT1xRNJ•*à…†;±gh%ˆ»¤]~[ò5LIXLs{_}RŒru“•l_^ŒLd!;a|]_k,qM§ƒ£šmn8© i-¹¯¦·9§~¥‹o³½Å±Å˜ÂiÄ.)Œ^ϺÃÁ)MÎ×.^ÊÛ?ªàáÉÊÇxæèmëìiÍðpÉË-Éôàœø²p%PX¶_ +˜O]{¿š XÈP‚‹ šA0à—“ŠÿB9F@!È)ûNª\ɲ¥K?b6‰ó¥$Œ89zlr ‘Íœ8m J´hÅ’ßV Y cLŸ-À¸"M&mŠ›:U™§Sý©”7U‘Q8bÏ~(™Ö`Ê)Â+Õ¤˜Ô”"UÈN'Ö¶ÿ¤N]q@R–“kjkÓágoÅÉÝÔqòòú1Ðñ>ÌuGu|´f!œxÞÓXÊRÖ™I³Âp©ÎÇÆaoõÊ£2ŸýxÊéC _LìPr`Dz/8ò͘BfI¶ëeýÜÑY‘5E^%—´Gßœ}‡¯‡^8÷åØ }…ÊñÝèÊÖöNÿz…‹cÑÇzi$„Ÿ0ÓY@àMèR B€Tä<!ù ,BBÿÈI«½TÌ»ÿ!ÖqXÅa€lKfyV&áÞ a®Tüd0° ¤Þl’*VˆBAp@Tš´¥„êœ |QNJÀ“ÀTJŠî`›¬»áËY¡¶%`Àù Œs¾lGI[GpkV~ze‡t"‹”G†/˜,cz5a€wo8S¦)„Aˆ!&h©Tdj¡7k´Aª·ŒgÀBsÃÄj&ÊaªžË€º#ºÑ˹Ô­ÚÛ9¬/ìçàéáÖ\âò§ôéú¼Êí›·ÎÞ uÿä}K8°¡žxƒñÐ `@ˆçÑ['¡ÀŠÿàeì°q]Á>†É!]Áo\d‰Cš8sêÜɳƒJ{JB@´èºŸ áðTg”(F¡P£JF¦9–6c¦T©4§Q<&Ù\SŽ™*èFµä"pT5Æe„gÖ]bŸÊcÊöC¶o.ËVÔ`KÀŽx&ªÏ½#Õ­…˜²¯ÈU±©Ã¬æñ@¦‚¥I¼/ÛÚÐ5G£N…àtªq­h€iË-` U¹êZ€­qƒðHZ’ç×z'ë‚—.˜d>•N!¸·ÚUwWïö•U5É9#âÉã#‹/’‡p½/¥r7Ú™$JøæÇ{B_ù)úíEã#+­M:4ñRܯØ`OðVWá ÅK4JòÞ\êí!ù ,BBÿÈI«½TÌ»ÿ!ÖqX…`€lKÇV™åA¸8hö|¾¦Un*ƒ‘¯R8 ,ƒ'±³ ˜Î%ep8N´i'¥¢bBIXrîMÚ^ñ¥ðn“5&›4Ër`€MqIMRl&W{x[‹{’—[1Ž.di"›S0no&•,U˜†bŠm§8U„¤9½¤"ASŸ¿f&ȹI»ÉŒhơу±)ÈÚ×¾žµd ×D`¬ϰè-ÚÝðT\¬ÍsdÖøXœðë@@À~ÿ* nax’DèÐ˰=Ó`¤aEšÿ–-ÃÔ«€»D 0pE”ž ´„I³¦Í›8¡PÚ)1g©•@FáI©•Í‚H!¾ôÉ´©Ó§æüÖ²d”(9“²$…àjÑHS*])ájƒNe®|ù *™nƒI˜Éw({Aœù¦ëD¾×¾!€ÈÒÃÅ(÷l ÞËá.XŸ‹vEûÆ#5o@s™´,F/àL&†§—òÐF>Y¬z\j3…‹Åf3Ø´+Ñ¿œ#ÕLíÖG³éØY÷/Áœ/DfÒZhËË_ ö4[ÎEáº1é~±»ïRÒ›™/'ô¿‚¶“éz|y㾿GûôøKw?u²Û: œ…|÷RzõQ{¿·_zy)(žðáô u¸Ô_EÓá!ù ,BBÿÈI«½tÌ»ÿ! –pX…`€lK‰[%Ä”I¸8hÌk}¾¼œPR(X4ÆM‚8 PÏag'¸Q‚èÄTH×ÃRzÁz*0£P­iS’Œ1 eUßK\)ˆ×t0k)sZ)‰;_€‡†`Xp‡Nvœ,‹€od"¡§‰,vY€)™B~†*B­gn“.¼@R¹½qÂdÄÆŸ&·­¡ËMÎ-˜“ÑËÀ³šY˜ÛCXž—YÚäé&b±š’îS^çö:fí÷ŠçtáøUìß7ÿNȦÐ+ˆêukØ"¼"FdG±CÆs ÿúe ­Ž>ÎUBHà!Êy_ÊœI³¦Í%5Ö»9!¤ÏœOÒ„çs Ï£H“*5Ö2fÃŒò¼!(b’gÈ•W¬•,0±æGŸQ´²+XÓ"È4d•pº”UWŠâæ Éñe¶µiN•˜wÛ]¼i#ykw-^S‹°mø·ØT Êõvw bƒ‡Ÿ î‹«)gߊ|îœ×f7FšœÆ³iÑ!êiêͰjn\IÁÖ’T﹄ï"Kð…ËÚ·ÓåÎÊ A,Ú œjêç»äýJý/R×o]±ëý\h@-åq q\/wwk-8¯.¯|t»Ö+ˆŸ|xù'9ן 1ÛÉUimíGN!ù ,BBÿÈI«½t Ì»ÿ•1– XÅ`€lKÂV™¥@¸8( +E¿¦^nX U ÄìDAÄPÆaG4P6QÉo2HVœLi¡ 1óölºMЇ¬ø²³rm¾0¦ ys0*Hv…Xh^fHYn—‡]2Œ˜9)„/™C|¦lO8¢“†sHžp€9T£´“¬f¶C­eSÁR¸¼ÅªÉbéÍÈÌcU¼ÒÓ{Úqd¥ÝRNᚢÜåšèŽØ’îSðÈõ:ãíöÔȹZðåC«~žA¨°7)ŠlØ">&DÑÓGñ™cèÿò1"‘^G Œ@8¡ÂŒ.OÊœI³¦ÍEFè,rsBÊù"FÑS Ð}Š*]Ê´)´‡=ɲ°-c93Sb1eõj‰6ÉMwØ¥‘RÒºæt—ÓbÛØÚ3„ÕºÍÀYc±íªÛ“"BrÔdõ¬L!§¾ˆ· ^•âØikœjp³ö îVíeƒ O3R®fÑÝH£ûü&ô¯¿Ê üiô×I$Y¿!Jµç‘ ÜÌŠ÷$Õ™uÀž`ÖÔ@¹q_𦠮Y3¹_ʾ{y¹á©®79´-oïÓHžxÖìÈõÆçŠ×~*ÉãkŸ’ÆùÔ–Té&Ì|þÙ…žLìYà^÷õàŠE÷Öz!ù ,BBÿÈI«½t Ì»ÿ•1 –f!ƒ®,E˜•°Uƒ@´8(¦ô<2Un@*…QÌ'A –”ØÙÝ(¨é6I'N&õò*%»3@F Ôníøbðö®.€ÀÆç/<`J[LYm_sjvxd–Ou–+YVc|6!Šr+uR(Œ9N®nƒ8ufm´‰Dª·€²ž9µÁ¦¾sªÅÉ|³Ÿ¼!ÎÉ{ºu›R•×TN§”Þºà5Š®dÞÔèÚ§çtÝßðOôUïøœXHWÁd#IØï JêHpämaC‡/íÛ'ÇEoÿ;h”ŒN®äî¡\ɲ¥Ë—+ºƒIAãûºéœ6æ7•賨ѣHáyRgG:Ù±zÀ–%ŠQÿ¹Ìx3è#FN&­”¨‹G 0MÚÂ#Zp"Öš4òöš¾ªrÑ@eÈRD×’õÀÖ…÷"¨Ô‰‚:¹)f߃‡hPçªè¼yXØÎ,€ìËûô1@AIþwt›’¢¸Îl±ê ªVà3:‡#±?jû¾éŠwcÌÀ[rÛA£²^Üö—\íÕLûÚܼ|Í£VµjÔb¹‰ä¦k¿á8 ¿üær Çy‡d}·' ¨8ãK>‘¿x d‡D|ø,EŸ'˜ç“wÑCÜ‚üíQL Ó¡ô<!ù ,BBÿÈI«½´Ì»ÿ•Q Ö0XÈ`€lKÃV™å@¸8(ªóI¦Un@*šã„FIÉšO"FT¸½b=ä@)!|RB#” eÓü™¸a ^à-Á¾ØŽsdM[QNnV~iI/h€‰uQfU9c‘?u8_”@—:›cp8†‡v ©?Ÿ.´¯µ,sº~l_½»œ¾!&°a‹™Å^È “ŸÁ~¸!¦€#£Ì.)ÙS›ŒÞ¶á6Û#Ôæ"éÄ·ÝæئîrÖ÷ãöþ^˜&+«ô+ØbGº.«FÙ'F¸‹âÌ1‚¡téÿÊq¸E1à$(Sª\Ér¥‘—0[–8€ñ¢Ž eΠÉSÀ=:ƒ JÔ#I¡cj$3¨Ïx”˜ÂTXÒŸÅžâ^¬j´ÎS3\e.,ªh,CJG25[ÁŸoIe+°Ô[yç†-ã­VôÅvWÛV9{[ˆì”qÓÄÜ €<‹jÀP4Óê8H·fDRnYž0²ˆ4Ÿ÷Ê{XJŸ!žj¾À¹‘\ÊÞŽÂ ôÃÑf›<—4å¨óu›r<É'¼Æcà-qæ+è¦ðVø$4)whømšî¤·“öÙ[Ñè%Ñ' Ÿàó’Ûâ§|ª¯ý{†øÒR—zòùW~HÍW Ö •Û) :YøP!ù ,BBÿÈI«½´Ì»ÿ•Q–f!…®,%n•jko=C8¤· „€8b° aP¬ šBŽ¥ Ù1 Q–½h‡p­æ(?ÏÌÊ-Óc¸K i —þÆœ·rYvKX"]}SUO…^dU{p,D‹Bx4!m7q™dA\nž¡f‹6l?°,¢¶ˆ‰¼¹·­º•µˆq¾o`ÆD³pÉǰSL‘ÀÁB`ySÔÕ+d¼‡˜ÎÕ†¼£ ²OäÁ\ñÌÜS¦òö8ì÷Ý^ñú6ˆÀkˆ¸'ÿrðF ¶;ê)ôÀ‹`™y 'Z(¥±£Ç ÿC<ØOd…Rª$¸ì‘Ëz"Q6TƤ͛8sz”•Ï ˜.d-êQ&ÁG_ZúËÌJ0–Îê9‘ˆÌ0¯t†£ªu^Ö–V¼òÇU ‚”«ðI-J>~Öš\¢ÒMR²9Ϧ´ãbj%€èÔ@uà€]]zÙ’*|@±p|‡1åÇ*°¬Æ±3*‰>æŒæ@Í OßÉ|c@áE› ‹‰]ò¾ ¸À*|úìá-°È¬$Ú‚¦\ŸN™Á´‹È¿‰拜Bá/’cH¾Œ¡Àkì­pQ}äÁò vã]õõÒ|O¶÷PBdê㛫 e¢úõ¼gÞw6Åf€DV\Uè‰W‚ šÄœ=!ù ,BBÿÈI«½!Ì»ÿ•VQXDa€lK‰[…œ²êÞ hSE<¦n *„Q Ù³hˆ˜p’ôILµ# íT§i†&îÊ&m÷SfàæO¾=¯ÙpRýÜZÍnP`{/…!J3VeŒ.{…b‚A!&9_H‘CŽ˜—8ƒ#`§]ƒ¦v7¤‰wf®£“²l&µC¤Š¸)»³‰Š¨¸„:š†·ÆD)ËeUÈÎ-@ÑÉ{Ö×"Ú±›I¾àTÑä.§çèaßïòáîó7ÖFFÅöØ3ÑÔFŒÐÇÏ‹‰­þœÈ­à•=ê©rˆáÅ‹3jÜ%ŸG#ÿ' ùÑcȇ¤TIæ¤Ë—0c®A -¤††† 8Àó@Èh){¨г眡¥\£§€m2u¨X)Ìx2;¨ˆU6D´ä‡ (×al½D€ÛuÊòðõ]Û”Ó¤ÍK‘€Ê§ˆÖ1.¤V¯xòíB åYxÌë/åps/WvÜq'ÝÁXˆ0e™Wæ ‚»èë—ó ¢Ÿ)àY—CãØhß[[a'U eù–šTYx‚I=Á-â?ÞÊ3°sìN5;38>ù]ÉzÀSàùb'iÝ× (®ðý·„ìXÊp«¹—øb+HfÇØyÔày/ˆÇÑlX°_o¸iÔØ>WFý]!ù ,BBÿÈI«½!Ì»ÿ•–fˆ®,%n•jko=!EX¤· „@ª Š;Ø¥Ü!…J7ÅšÍ@(ô š£ü\<2o ¯T™Äp¦tmNyiMÚ Ot€ysc'}sxQŠYr"T+D†.S`‚‘‚X R#‘–P][š‘+RDd¥-Rj^«¦G°„‚4m§”´.^ŒP³¸?Á¨¥ª»ÅÇ<›…žÉB]½z“ºÐ8^^l¹Ö×Ü<½Ä“ãÉÃ7ªæ»­ßð’ÍñÑ5÷ƒô6"^éî < `Þ>>Ò Hפ‹vH˜P0 J%±£Ç ÿCÂHRdŠ SxH’ I3)c~yI³¦Í›ô0j<ø†ƒCˆ4e2 H2#Í.1€¨g¿”C¶á\Ònê‡.U ‰Y7àÞL‰óµ£#p@Ö#ä¿y±`Zyv ÖÏðˆþ@¤öKÄ÷†w€ÐÑ„Þm×”™Uú]!ù ,BBÿÈI«½”Ì»ÿ•¡Ybˆ®,%nz¦m Š4U†¥jÿщà›È2XF ļŠC²²C2ƒÕ&çéÒ@Ñž«tÕ†¼±œ$‹5!Õæ w"ý2QL)\‹”5yD"_lQ‚5Ws@zPXe—‘/Zx<{+–—y‘5¤PzŸ,¡¥qcž®-¬²q©µ³n¯!±‰¥`½!¥"“Š—ÅM(É—‹”Î[ѪÕ¸ØAÛˆ˼âä“áÚï΄ëõ+ÄöfˆßÒù³ÐÑ$ÐU-˜:r´E[xgà7„z2ÇnÀAˆ]äaÜȱ£Ç,ÿ\’‚Ä“" (9!Ú€/_6cI³¦Í›â´]äȉ¹e$KÂde@J~XB‹ùÒ Á—1êzç–¨V;ÃjkŠ©t<XÔhÀá\ÍH;Ö‚§×–ÛÏ‚·E;;þ´ˆÁÛ')ù(†á›K@Þ8脽2  \=tÓÆ@Yò*¶–ƒ4FÅ œ¹Šm ì˜‚Ñ™@ú Ž‚Ù†ÑÒF(Çvª5Е¢< a è˜Àìí+3•Ê&¬›|5ä¤)¯ ›eH‡7ÐöhÛ×éE%ö°ÆŒ´WßÒðäíÎV0zýå$ÌcCžfø}g5Bè\D`ÆÙÃÜ:!ù ,BBÿÈI«½”Ì»ÿq–f„®,…G¹UHÚÞ Ï“I¡6œ0X£O” =º$¥p(CÕ¯öôPZ‰œYÃà²{‚‘(0DF>AÑ{54Ûò:,‘F=KfY{k€w(h†Œ“8Uz}Œ-vz\7Hd™C† •z+¦h¯ž³¢‡C¥UˆL®lQ¶ˆ¡¢Æ¤H‘ÀLy7™µ'ÍÎL¯v¿_Ö¼º¿¦àÝÔºÊÛéæv¢A™Üæ†Ð7Óö—ý=  —S ”#( _:LÁ0 Ã-¢>4S€^•‹ÿ2ÖˆwaŸEiH¢\ɲ¥Ë—8$˜s‚8s>€¤' U0o Õx²¦Ñ£H“²Z“U‡}zZ š3Ÿ„ˆUªP\H0”Nœ3xRä—ÔNN1\TŠh_»n¡Þžˆ* ¨½}妉ȓìÅP ¶ÇsÑKÀ`9ð­{ïC ý> ¨2åã¢Úí’Y2¯ÂzqÐÂÚ耴–®Pjë–Õ¬I¦öœãôo†(j6vDÃxÂÎPdMêÍ%=GÍ s¹}K16ü‚8v·#q‘ðGq€ó£"‡ hf ÍU÷û=‹"ŠÞ±×éˆ\Hë5â¦ÃŸR1D‘ê^TQ#3Ûq7]8õ•ûÕñ_S N•ßÁ4O5&BÛQõ;tmpjWNuGb/horde-5.1.5/themes/default/graphics/rhand.png0000644000175000017500000000070312233761325022671 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®Îé pHYs ‰ ‰£ÒêtIMEÜ /:I`%bKGDÿ‡Ì¿GIDATxcT@QZmŠê]ÕŠ4¦hý0þèrAÿ·¦*^E&«ö}x¼ÏæÓlK4*€0YÝSë‡éûÚ½Ÿžüo4Í7ÿß»§Ë@\FTVT®Ðò¿åÓ³.3ìž~~ü¿î??ƒÁG»ÿ¦ÿµ¡P㦚/X¡í×ÿîã–ÚÝýÏÑzíâîÓ» pçéþ-úW  }ÿû^LYj{fÐož«# ŠJ€0½Ïþ:ºB8gWw×=kòßm¯®ÛŒS¡±AJ‰å¿™‡^¿|óúÿ¥ÿ8Æ…N²ÿw%ç¿Ä1E¡åuˆˆSZ¶ëN·ëPE…ÞÿýŽìë´¿§û_c‹R†L†b®ÛTÛ×Ù[Ð|ã‰M'^­ù¯óçÚÂ#V÷ ÿƒ ñ‡÷»:ÐþBA Íü?îÿ­ÿ0ðî¿Þ I¥zd»O¥:8ÝIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/keys/0000755000175000017500000000000012262230550022033 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/themes/default/graphics/keys/down.png0000644000175000017500000000032112233761324023512 0ustar mathieumathieu‰PNG  IHDR(-S*PLTEÿÿÿÿÿÿ’“ ïðôíîóðñõñòöôõùÀÀÀ„…‡nprððñòó÷%ð½ tRNS@æØfUIDATxÚu[ À0ÝØ—šÞÿºÕ|´ ÒATP$|¼xdž fˆc'à2p)îBuµ%®Buµ6ñ+Ô4‹Dæ4$Ê­”±ïÆI¤pl¼=×ÞJÎ;ŽTÜIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/keys/up.png0000644000175000017500000000031712233761324023174 0ustar mathieumathieu‰PNG  IHDR(-S*PLTEÿÿÿÿÿÿ’“ ïðôíîóðñõñòöôõùÀÀÀ„…‡nprððñòó÷%ð½ tRNS@æØfSIDATxÚ¥1€0 ã(IÊÿ¿‹S©(RGn±|òb‘ðöáÁ>P!޳—†«€Fñ$f3¦¸‰©ZæZ˜’Ü,¡¹Ð"¨Xˆ^ pøvn»ÿMCE¬Ú…§IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/keys/right.png0000644000175000017500000000030312233761324023660 0ustar mathieumathieu‰PNG  IHDR(-S*PLTEÿÿÿnpr„…‡’“ððñÿÿÿïðôñòöòó÷ôõùðñõíîó ÀÀÀPdztRNS@æØfGIDATxum €PW}–•ÞÿºAAOv~(;€¨=¨2üè/k\l±®°¿0.²&QY¯È›"¢°§tG›ÞâZþ ƒù¡¬¨ÏIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/keys/left.png0000644000175000017500000000030312233761324023475 0ustar mathieumathieu‰PNG  IHDR(-S*PLTEÿÿÿnpr„…‡’“ððñÿÿÿíîóðñõòó÷ôõùñòöïðôÀÀÀ GËŠõtRNS@æØfGIDATx}Ñ €@W=ë*ýÿß "Y¼yPvQûPdø!Pßöẏór…Uaˆ¬"2Šˆ|aA'ýÓÕšNq”‰æ«£5Y«IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/horde-power2.png0000644000175000017500000000275112233761325024117 0ustar mathieumathieu‰PNG  IHDRTN*\gPLTEÿÿÿœÊ óóó ÷÷÷ìììèèè### ØØØ!!!ZZZÌÌÌ***’½ &&&ÒÒÒßßßððð¾¾¾åååÕÕÕ```000KKK>>>WWWÁÁÁ"""888žžž ûûûVVV¤¤¤ccc‘‘‘ÏÏÏ(((AAAhhh¹¹¹Um’’’,,,;;;—ÄTTT‚¨b~RRR111¯¯¯444ŠŠŠSSS‡‡‡uuu333...sssÃÃÜœœ¼¼¼%%%p……… NNN}}}´´´···666rrrššš–––‡¯šÈ<<<šÇVn™Æ% LamŒ///_{8F  # )))EEE9Hnnn‹‹‹v—u—­­­ÉÉÉ+++! 9Gq‘/9999& [[[ {{{v™TjDDDeee   –ÃGGGi†tttLLLHHHwwwDV:JŒµddd^^^Nc% 3?…­˜Äޏ)3 q’ŽŽŽ9Hv˜›Ézž‚¨XXX} $, {ž¶ $$$a~'''PPP/:ƒªYq¦¦¦" u˜ „«•Á‹µ{Ÿt–mŒc€OOO8F=LmmmZs€vgˆ=IDATx^µÕó¯íJð53õ¦qlÛæ¥mÛ¶ñlÛ¶mûýQ·Î¼sO“““—}÷JÚ¬ô‡O¾ét¦ÈMÈMO®Ð±\ ùós€bo.ÐXÅd )-[»šX9-QÞ®ú˽èÝhœd¾îß#*…²yZ´‚zÑ'‘ôÝ`n³e©;<]=-ÚÇ zQ¼7€Ú ³žâÎðNeé@ÈÜXC!÷y0P)Ñ oÕ¾D„ÈܼZ¬Í.µŠ£tMT/u_OïX4vi&¯£Ë¢±ØŠ4!ï—êÑ2ÊÑ»¶êá¢uÿ¡·BYè’¾"àì MÓžG¢‰£nâ!B T^óª ©å•Öø>…µ&ð9/ì ‰îûEÜLo…qŸfg÷ ¨#5, 癨ud”WÃòµˆGP+DU6 Tû †Ù²ä›fkN¾ƒ²X fÁòf@­ZøµïlõU }fkëÎM*м¼ÀòÛ, ï‰Z(•èC×øDë×j<· #Vߨf—0°H‡1d×(°! ãbç9@ï d‰«0 ;È9»JT+žõÚÈm%¸ý×üø”:¯6 úA«ìÚŒ› üë­â6QÃx  ;˜@EŠùJ´¯¡‡$:l—fŽò*P~\<æ¢}6ú8dRõf÷)ì%TNzZ žIÏ U…&·OÞ ÖåEïÁp6cW‰vIg[+ðÏÌí¶­ê )ЧG¼èœ8]·¹Å}º] ]ÆÒM “@d>ƒ± ©ººƒL>³^­ 0ñ`B ¤ U>>ÿÿÿ###===RRRJJJMMMQQQBBBAAAHHHDDD999444...111EEECCCPPP(((888000GGGÿÿÿkËôttRNS»`Ðúi”Ì·ÒÈÔÑÖý`=üÁÓhþ0l’4ëéI»EaQ¥IDATx^uÈ×rƒ0DQz/¡ã¶’è¸&ùÿ3ŽeÁÀä¾ìΑÞZx¿‡š!-RÏ=¦ú³:[4@@ Åy½D™xR9/ï1²!!’œ„&£E»LMN-Z‹åBS“]–{¶m¯µo뾚{·o§½ /|¸qŸÅ+¯™|¹sžŽŸKoÛ|ºõÕ¯kǘ}»wˆÝ¿‹O~¼yåϫߗ~½{zíßËo¾}sõïëÿ–¿lýý' CÑ h w¨ ÿx .è y >(!zNh!{^¨!|nè!}~("~!Žh"%ž¨"€)®è"º¼(ã6Îhã5Þ¨#9îèã=þ(¤Ai$.-©d)E.é¤M>)åQNi¥U^©eYné%]~)æ aŽi¦ ež©f i®é& m¾ùfœr®IggÞ‰ç˜zîùeŸ~n h WJ蔆úd¢Š.Éh£G> é’Núc¥–îˆi¦7nÊ錞~úb¨¢®Hj©'žŠêˆª®úa«®nk¬ÎJë„¶Þú`®º.Èk¯þ ì€Âû_±Æî‡l²÷-Ëì|Î>û^´Ò®Gmÿµç]‹íxÚnû]·Þnn¸×Kîtæžû\ºê.Çn»Ç½ ïpòÎû[½öî†o¾·íËïlþþûZÀ¯FpÁ§Œðh /üYÃoqÄ™MLqe_ Z’ÏÉqÇv~ rž"ÌgÉ&ÿ‰rÊ‚®Ìr¡.¿ŒhÌ2/JsÍŽÞŒs¤:ïLiÏ>_ tКMt§F jÒJÊtÓ¦> uªROÍjÕV¿ŠuÖ²nÍu­^kØbïJvÙ¾žv°j¯MlÛn wÜÊÎMw³vß mÞzOËwßÖþ x¶‚Îmᆋxââ.Îx¹Ž?Žnä’¯Kyåî^Žy¼šoNoçžß zÿèúŽNz¿¦ŸpêªÌzë¿{²ÏÎpí¶?Œ{îïÎ{žÿŽqðÂocñ`üØÊ/ovóΧ }ôlOOýÛÖ_/wöÚ×Í}÷xþÞâïwùæŽ~ú„¯Ïþáxüò7NýßÿäúïoyÿþËȹðs< è¨ÀÒ1°¨{ W'Á º®‚Œ3H» rðvü îB(ÂÞ‘°„À;! ‡§Â".tNÆbˆÒÐ6¼!‡Z¨CÃä°‡ïø!AÄÃ!¢†xF$“8!2‘DE|"k–(Å8±Šà¸"¹¡Å-j£‹^dQÃÈÿ0’qf<#Œ`¨F²±#|#M(Ç9¦°Žvd!óøÂÄðñŽ~ü£)È>R3i<ä/©È^0²‘d¡"$7òÈIÒ¢’–”&3¹ŠMr2žüdF$)J£²” %*;¡ÊUn¢•®Ì,cy‰YÒò¶¼e#r©Ëuœ²—þà%0çòËabhŒÆœ‰0“ù‘b2³Ë|&Žœ)MxD³šx¡&6‰¸ÇmbåšÞt8ÃɆq’S æó)vò3ûüg*Ð)´ Q8(BŸ Ð…RÉŸ…FC#J„‰RK½h2,ªÑ|dÿ´£Æà(Hy Ò‘ê ¤&ÓGSê ”²´.})™V*S‰È³¦÷ˆ)N_ Ó¶ §>]PƒÊ&šUC=j7ŒªÔQÞ´©êH*T9ÃÔ©²²ªV}%V³*Ë­rµ–^ý*.Ã*Ö]’µ¬¾|*Z¹xÖµS­nh[ãÊŒ¹ÒµRj^¡º×¦öU©=j`‰:Ø Ö§‡ÝibqºØš6V¦}idY:Ù”VÖ¤—ifAºÙŽvV£Ÿ½hh):Úˆ–Ö¡§]hjºÚ‚¶V ¯ýglù9Û|ÖÖž·gná¹ÛvöV¿=gpÉ9Üp×›ÇÝfr±¹Üj6WšÏ}ft™9ÝdVטÿ×fv¹Ý^vW—ß½exi9ÞX–וç]ezQ¹ÞR¶W”ïýd|99ßLÖ×’÷d~!¹ßFöW‘ÿ=d€ 9`Aøæc‚ó¸`;6xކc„Û8a5VøŒ&c†Ã¸a/vx‹Æbˆ«8b)–ø‰'fbŠ“¸b#¶xˆ/bŒ{8cÖø†7¦aŽc¸cöx…?FaK8dùƒGæ`’3¸d 6y‚O†`”8eVù€W&`–¸eÿuy_Æ_˜ë7fù•ù}gf_šÓ·fóµy|o_œ»7gíÕùzw¦^ž£·gçõyyF^ ‹7háúw‡æ]¢s·hÛ5zv†ÿ]¤[7iÕUút—&]¦C·iÏuzsŸÆ\¨+7jÉ•úq§f\ª·jõzp¯\¬û6k½Õún·¦[®ã¶k·õzm¿F[°Ë6l±ûkÇæZ²³¶l«5{jφZ´›6m¥Uûh×&Z¶ƒ¶mŸu{g߯Y¸k6n™•ûeçfYºS¶n“µ{dïY¼;6oÕûb÷¦X¾#¶o‡õ{aÿFXÀ 6pü_çWÂóµp{5|^‡WÄÛ5quUü\'WÆÃµqou|[ÇVÈ«5ri•üY'gVÊ“µrcµ|X/VÌ{5s]ÕüV7§UÎcµsWõ|U?GUÐK5tQýSGçTÒÿ3µtK5}RO‡TÔ5uEUýPW'TÖµu?u}O_ÇSØë4v9•Ýcp½+íªv=œÝMoYÚÛ.Q¶ÓýqWSÞI6÷»+cïfüÉúî÷¯Ø½ðm¼˜¯2Â#^Œ÷Rä[æøÇcòZÂ<Ì*où–¾óëä<è#)úÑ×BóVBýÌJoúY¨^J¯·ë[‹Ø;Éö9›=í‘úùÝ#I÷¾wj7ƒÕÞÿ ¸WRòyüã_µùÎ×*ô£ßÕéS¬Ö¿þX³¯}³r¿ûi>øÙúýñ¿Uüæ—kùÓ_×õ³¯Æÿ–o$úÿÌýòw{üóû ÉÿBƒü‡wÿû7€\R€¸è# X4˜€‰‡€¨R8è$S˜3UH$ø0Ѐ:B‚Hã"Ø&h#+¸4(˜‚¿‡~0èy/8ƒýTƒ6h-(#;è48˜ƒTЃ."„Qóƒ@%!x„¬„JLØ„Ãð„PD¨"UH5F8…Fp…&Â…W“…ZXQR…^("e¨5`†•†jØcØ„gè!qØ5l؆>0‡‚‡É#ƒvh zh!È<|؇¤ˆbˆÏ3ˆ„È ˆè (=Џˆšðˆ B‰Õ‰’èo¨„–h ˆ=˜˜‰–ð‰BŠÛŠ¢è¦è«è=ÿ¨˜ŠŒÐŠú!‹á󊰨´h¹H>¶x‹çGH¾Xˆ›x„»(Åx>½Œí—ŒÊuØŒ<5Œ@xŒîAêÌШϘ—!9hêŽíƒÜH€ÛXŽEuŽè¸„긎NØŽî…ðTè6(ŽæðCŽôxóú(9?üØ¡W ‚ÿèŽé i?™^ðÚA‘ù‘yOö8ƒiÉ?™‘ú´‘0ø‘Òa’ÿ’"yƒ*¹’:H’)ˆ’2“"(“Ô’.„4ùŸ À˜“| “ À `J¹”LÙ”Nù”P•R9•TY•Vy•ÿX™•Z¹•\Ù•^ù•`–b9–dY–fy–h™–j¹–lÙ–nù–O™°‚@ À З~ù—€˜‚9˜„Y˜†y˜ˆ™˜Š¹˜ŒÙ˜Žù˜™’9™”Y™–y™˜™™š¹™œÙ™žù™ š¢)˜@ tP €0°›²9›´Y›¶y›¸™›º¹›¼Ù›¾ù›ÀœÂ9œÄYœÆyœÈ™œÊ¹œÌÙœÎùœÐÒ9ÔYµ °` p 00žäYžæyžè™žê¹žìÙžîùžðŸò9ŸôYŸöyŸø™Ÿú¹ŸüÙŸþùŸ b: Z z Šžð L€ `pP¡z¡š¡º¡Ú¡ú¡ ¢":¢$Z¢&z¢(š¢*º¢,Ú¢.ú¢0£2:£4Z£6z£8š£:Ê¡àÐM!;tmpjWNuGb/horde-5.1.5/themes/default/graphics/expand.png0000644000175000017500000000035212233761325023054 0ustar mathieumathieu‰PNG  IHDR ±´5g±IDATxcøÏ´(Hå?:¢„/ÁßƒŠ‚˜1$R~Ë¥XŸ>¤‹!a®Ë iº0øWPcŠ„³*3ƒ¨˜¿õñàËAf¨ ÀÉ j<3øoPo'ªPŸ°mOð¿Èr4‰ ›Àeµÿüý_„$ÄØòÿÐÿÿþë"Ù”öñÿoOÿG¡¸*`Sóÿ'¿þ·ÿçAñGåÿÿoÿ¯Žáó?ÿb «ÿÀP„¬œãÛÃIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/sidebar-new-bg.png0000644000175000017500000000023112233761325024357 0ustar mathieumathieu‰PNG  IHDRäc‘>tEXtSoftwareAdobe ImageReadyqÉe<;IDAT[MÙ BIt<—r$¯¨ýxÒÔVÀÃrhba«xQp*û÷ê+kÏ™öÄkŸ©c¬êAhÇz ëIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/popright.png0000644000175000017500000000016212233761325023430 0ustar mathieumathieu‰PNG  IHDRóÿa9IDATxcÆàæÍ›ÿ)2 ¾¾þ?ÈŠ  ÈfŠ kF`Ê ˆŒŒ Ë„fr\3¹€xÍ£0> Óe÷\IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/navi-right-active.png0000644000175000017500000000030512233761325025114 0ustar mathieumathieu‰PNG  IHDR "é¯ß±tEXtSoftwareAdobe ImageReadyqÉe<gIDATxí“Á Â@ ÚJ(ƒ7ý÷C8YˆH‚¨àF+ßcäûùt¹ÞôEÑÆ8ë/Skê©+‰ö+Š^ÑY‚UBš÷Sà}»Á¾ÂCÇ:`ƒ‹1~´?.?–£^?(/wmYuß÷¦'Æz&•‰ÊT’n¥ûéÖT2Q™TþËR†Ö™A&æ¨s˜ÖIç˜ZÕ¥…<<©=š-èR­Ž0͘•6D(ãæÉÝý¥£2ÍlÌJílkFÑ»6|Ä(þ~»/ðæÏ÷Ÿ~”áÕ»…avÍ‚Clw>béÖ%õ¶y…ÇõbÊ-d׺µ<",ÃǃÚ|¦vvAˆ'[EÊ"äáÖZm"‚¸ ×ñ°Sû%A*V›¡Ù.PE-<¾ >Ïa˜}†n'Ä2W ÷_ 1æ`cø{·Ãp¥ü¯}K5²_m,r`¥ÎpsÇ;…>¶Þ×^={W|tF†Q’íüë†Fì쌌Í3{IDAT½ÁÂ0ÀÜ)îV6[Ç]ï+ú4p˜Á?%mÒN1(ñôFò‹_Hà)µ§+Áµ‡·ÌŠ|íÖYDry{á1{Ûb ZÙpî–u®Tñ©V§KÐhâ[ë mh®¢?ŽDh<2'WFÜ%Ó!í6ÅO<ZïúžÓ™±IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/nav/bottom-grey.png0000644000175000017500000000063612233761324024635 0ustar mathieumathieu‰PNG  IHDRºWí?™PLTEÄÄÄÅÅÅÅÅÅÄÄÄÄÄÄÃÃÃÄÄÄÅÅÅÃÃÃÄÄÄÄÄÄÄÄÄÅÅÅÅÅÅÅÅÅÄÄÄÄÄÄÃÃÃÄÄͶ¶ÃÃÃÄÄÄÃÃÃÄÄÄÄÄÄÄÄÄÅÅÅÄÄÄÄÄÄÉÉÉÅÅÅÄÄÄÄÄÄÃÃÃÆÆÆÄÄÄÄÄÄÄÄÄÃÃÃÄÄÄÄÄÄÈÈÈÄÄÄÄÄÄÄÄÄÄÄÄÃÃÃÿÿÿÅÅÅÄÄÄ’œ2tRNSh05'–&ìX7äóßT`,õÂQŽžð"ÈÌ®åá>üúw Ò¶¬àÛù÷ldo³–@#—‚IDAT]Áƒ0ÀÅŠ×ÝÝu︒>Ì@™RèAëti¥-mZ¬•Ñ¥Ù‚ŸROPQé£! |W‰“Ìs•´…9´Å’Öj c³¥±‹aíi|PùþX:Cº\©Üî¨ñäÓEË|CÈB’9…k …B’:gi@ÝIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/nav/first.png0000644000175000017500000000062712233761324023514 0ustar mathieumathieu‰PNG  IHDR'€Õ†^IDAT(SÅÑM(DQ€áÏJ6JÊVéÎÆÍOMÃÌœájãwæFCRJI) ¤,V ËYh²Q6V¬lldc¡DQš(%ÿ½nw®±U¾Ýy{êtÎ'ò£çuôwñTÕì{}îRSë=–Š™­BÔbÛ‹©BÑÇŒç&Dg!k·}ÖøŒÐÂræ;xÊôíz¢(D‘°au…¯E¦ 5_à,ˆ"á†Z0pBÑAÚ†¾!ã©™]XèŸ2ÞÂÄèÆÂÂdiTߨ#J+}X~h ŠI?– ï‚(â¤íbÃáíN´0ü0I:gæòûtý€§7ëtþ† YÆÏ_G\W¯°zH©b(Býãżó˜åŒéëÇ z‹¡åävH:ß#‚çåd…d1aúì=ã@JÙ8 …tgÕµkB÷×slö»ÊÐåÓ$B×PÉ.Ú¢q$>_ðµA…‰ÌIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/nav/top.png0000644000175000017500000000113212233761324023157 0ustar mathieumathieu‰PNG  IHDR'€Õ†gAMA± üasRGB®Îé cHRMz&€„ú€èu0ê`:˜pœºQ< pHYs  šœbKGDÿ‡Ì¿SIDATxcÿo¼ÿÛb…Öÿ5Þ0 Àÿÿ.ÿ]±@ RÿÈ CúfÕ.ƒÀ5o"ÿX½‡ñŠfi„0`ÿS¶M2ü¯™Ã€ü7¸ùÓë¿Û›ÿº¿ÔLq+ãût7ú :þ·ú¯ýH^—Â55ÿýÿ¡ÿ»ÿæÿ5730bS–¿ê¿7P‚‚Ëè¿F9¦2ó+¿= ШT÷¯šª2áwÃÿ"+òœ€Á­ý\I YáºêÿŽX =Ð¥ÊÛªÍôï ÁþèKÏBÿ½jŠ…ðëTÔ±û¼o*Ð$ÓÿÓðxàÁÿÿ=ÞÐÿ¯[™ÒãO~`¸€âæ«KÙœMÿõ±ÃËÿÚW”8±)œÖûß8~ÿí@.‡©,b÷Ô÷ºÔà¿Fª2µ_}€’¨ÐäÒïÊ:È eáÈ ÿUN@ÔÌ$µF "6%tEXtdate:create2012-07-13T01:46:52+02:00¥^o3%tEXtdate:modify2012-07-13T01:46:52+02:00Ô×IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/nav/up.png0000644000175000017500000000066112233761324023007 0ustar mathieumathieu‰PNG  IHDRºWí?ÀPLTE(((ÿÿÿ¸¸¸“““uuuÿÿÿWWW)))666(((...ÿÿÿëëë''',,,$$$ÿÿÿúúúÿÿÿÏÏÏÿÿÿ***(((ÿÿÿ€€€(((ÿÿÿ'''ÿÿÿâââ---%%%ÿÿÿ$$$RRR===DDD;;;MMMQQQPPP888SSSHHHCCCÁÁÁIII///KKK(((<<<222BBBÿÿÿmmm•••LLLGGG444???lll©©©øó£$tRNS’ìì놆tüFí|þéDìÂ>üFÈŠ’’QX$óö*ÁÇÁïÕ|IDATx^½ÈUÃ0QËÌL»sï«Zu×hßÏHC~CKQ°T>O!-„˜ñ94F/W§,f…¥=Ôˆ¬?nXoI¯Ñôçhµ;DèöÎ.€ûðFc1'—+06ÞgÅ›G|Ę,ò·\Ù£ûõ†ÏíoGþè Žú“©YCIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/nav/bottom.png0000644000175000017500000000114312233761324023663 0ustar mathieumathieu‰PNG  IHDR'€Õ†gAMA± üasRGB®Îé cHRMz&€„ú€èu0ê`:˜pœºQ< pHYs  šœbKGDÿ‡Ì¿\IDATx}‘OHšaÇŸÆ.ƒ1Øu âÜËœ nêëæÐmꦾáC;AA—AÇ ;%ä¡c‡.—NuêÒ%¼t"¡ ¤@þd|J_²W}ôó9=ð¹|бì~D•:;â ó;å2@„ß=þä¨U±ÿw¡ëÊ¢lAVôb_õ$ÑÉ~±Ñé…³ò‰/hí,Å(W{<2¬6¥ ÜTë˜Ä lÙ÷¨DùÁ6hbö‚‡Ë2,¶¹ÔB¦åü?÷ÙŸæþÉRN¯$»Îc.{ùLHâ4l¿qžúùª/á¼ÊëîÅAåNå{ÏÁ+·xûgL¹Q‰w²8ë0!$<ïØ±cœØ „â?@5åÿÿÿg$l _yÓ@Šm,HØ@þ Ôb &~”3Åo &žt‰9ùŸ@œƒa ü„5¤xŸx5„ ì…ùï@œBŒ—?Ã.@¤ÜÉ)g€†)¡'4¼æÄ‰|Ä$›iÛ¶mcÇ“°-Ë'SéŽ@Ö{JBÄd½C@…j¸2>H¨fÝÉ“'…‰*F=½¬ÍsIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/nav/left-grey.png0000644000175000017500000000034312233761324024256 0ustar mathieumathieu‰PNG  IHDR‰ ªIDATxc`GŽyÄÿ=ê†KÍ¡C‡´€jŽkà¨ØäAâ@ù/ 5xæÌV ø$˜|ØÈ£È@ A‘@\dÿñ)2ŠŸÀØÔ2ðU „& þM5¡éÎÈN¡`ÿþý@±ƒÔ1a( P¼‹2Ñ4]å?‚ÔP­p8vì˜ (ÀœQG^wš·•>YIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/nav/up-grey.png0000644000175000017500000000042612233761324023752 0ustar mathieumathieu‰PNG  IHDRºWí?WPLTEÅÅÅÅÅÅÄÄÄÄÄÄÄÄÄÃÃÃÄÄÄÃÃÃÅÅÅÄÄÄÄÄÄÃÃÿ¿¿ÄÄÄÄÄÄÈÈÈ¿¿¿ÄÄÄÄÄÄÌÌÌÄÄÄÄÄÄÃÃÃÆÆÆÄÄÄÄÄÄÂÂÂÄÄÄÛ¾çtRNSXFìÁÇYt|>ûýDçêà䊒Q$ñô*g%ŒÕRIDAT½ÁE€0ÀI ¸»Ìÿ߉„ wèÆG< ,>ÀÒêдÚi!á%NÈ4ÃC^pWVjŸ'ÓáÖó2Àé(\¦™Î²Âò)üh€^ R¢¸æ0IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/nav/down-grey.png0000644000175000017500000000042612233761324024275 0ustar mathieumathieu‰PNG  IHDRºWí?WPLTEÅÅÅÄÄÄÄÄÄÄÄÄÅÅÅÄÄÄÄÄÄÃÃÃÂÂÂÄÄÄÌÌÌ¿¿¿ÆÆÆÄÄÄÄÄÄ¿¿¿ÃÃÃÄÄÄÄÄÄÅÅÅÃÃÃÄÄÄÄÄÄÃÃÃÄÄÄÄÄÄÈÈÈÄÄÄnr•tRNSXÁìÇFñôQ*Š$êçDýû>|t’Yäà9~ï•RIDAT½ÁE€0ÀI ¸»Ìÿ߉„ wèÆŸ| VÒ r\ÎÈK‚[êó¤3kÁ]Yá¡nȶÃKOŒÚMó¢`y<|cBª R-—IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/nav/top-grey.png0000644000175000017500000000063612233761324024133 0ustar mathieumathieu‰PNG  IHDRºWí?™PLTEÄÄÄÅÅÅÄÄÄÄÄÄÄÄÄÃÃÃÄÄÄÅÅÅÄÄÄÅÅÅÅÅÅÄÄÄÃÃÃÄÄÄÄÄÄÄÄÄÅÅÅÿÿÿÃÃÃÃÃÃÃÃÃÄÄÄÄÄÄÈÈÈÉÉÉÄÄÄÄÄÄÅÅÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÃÃÃÅÅÅÃÃÃÄÄÄÄÄͶ¶ÄÄÄÄÄÄÆÆÆÃÃÃÅÅÅÄÄÄÅÅÅÄÄÄÄÄÄÄÄĘOñ±2tRNSh0ìßä&'T–5Xó7ùÛ¬³owúüáå®¶dlŽ÷Q>"ðàÌÒ ž`õ,ÂÈÀG‹"‚IDAT]Áƒ0ÀÅŠ×ÝÝu︒>Ì@ñ(xÐX-r ~à"r‹wO¶ÔL;T.#H]–z}T4†°ò1ÉÆlNk±„¶¢°†Ör•ÄrW !ìÈ *)jNg*Yázcéþ@%¦ñ„•ÒzÁhe´Þh_ ?ã9g¬I“IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/nav/last.png0000644000175000017500000000063212233761324023324 0ustar mathieumathieu‰PNG  IHDR'€Õ†aIDAT(SÅ‘M(DQ†•l””­ºs5n†šÆÏœáj3ƒqo£!) ¥¤”R– +Š…¥…&5+V66²±P2Ei¢Ôä¿ÇâwN¶Ê»ûžž:çý>!þ/õ§uÊì­ËzjJ‰žÒÑó¢ãYŸpñòPßvÉÜŽ¤! áGßõT8x5ÝIƧ>/ʲ´A"$Q$|š×Mº‘´ÐpX[åˆQG´‰¦ £àqD‹^$A|7Z@mé"DúÖʸ‰M‚0ío 3ŠhcA åÞü&ILB4Óþ¨ˆ661L†?ÌŸÙ¢‡(£¿Ä>69¿-ãdÉäqˆAŽa}cÌ}zŒËW&•?0Eî Ëií”Yäé ¿Ò:Æ/gxŠ{´ˆ±*•=ös[”/c’æâÙâ ¿Åi® ŒˆŸl'xÈtÉúN„‚4Q4¨VH È‹?Ïs µY4ÝJIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/nav/right.png0000644000175000017500000000057512233761324023504 0ustar mathieumathieu‰PNG  IHDR‰ DIDATx퓽jÂ`†Ú{èÐ1¢@Dµ‚PÁè`/B·ºuÐÅ¡£’‹ÈdM—vË=d+I§B‡ }š³9Ø’úu)ôÀKBÞ‡œ÷œ/•ú/MÓžÒé´þ•ŸËåºÙl–Xa"`­V£P(¼g2™ÛSþjµÚ6›Mêõ:‰€r¸ÑhP*•ä/v±.ýÍf³ët:ȹÄ@Ã0g¥RA×õç8†ëc ø?N§Sƒò.äóù0ŽÀPŠÆã1­V É«X,~Äí߯×ëó¢ÉdB»Ýår™jµúª™¦I¯×C@óùüð+À~¿mÛ8Ž(·<›Íð<ïÜ) e4±\. ‚à¸Qš²´hYQ=WJ{(ëâº.Àp!ßÏ. |ßÌSþ~¿ßÊՇɀ€ hßø]@*LýÉú¹œpl‚IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/nav/left.png0000644000175000017500000000057112233761324023315 0ustar mathieumathieu‰PNG  IHDR‰ @IDATxc`o€ø¿¦¦¦.5ªªªZ***lj2ÐÚÚú¿­­íÿÒÒÒ6lòêê꺺ºß,,,þe È0ggçÿ“Ð\Î Ä“ôõõÿÛØØ€,%Þ@Þ“ÑÒÒ:abbò*OžP/ºèèè¼y$çééù?((ˆt&½X£§§÷®öööÿ}}}A†‘g ™™Ù[###°F''§ÿ ƒÈ70<<üˆvwwÿ2„2wìØñzåÊ•ÿ=<<(5)ÿÿÿ/9þüŸàà`J½Œˆe ¡v¯_¿~™››ûßÇLJr¡†JüúõëÐÔ©SAA@¡CY€¸ëàÁƒ äC¼ÞÞÞà¬7yòdx^F38ðÑ£GŸsrrˆÐðæ?¸áQ£Ä†$œ† ‡aIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/nav/right-grey.png0000644000175000017500000000031312233761324024436 0ustar mathieumathieu‰PNG  IHDR‰ ’IDATxc`GŽ9~èÐ!-\òGuªùÄoˆ2ªø Pc# jþo O:sæ +Å¢áã'Nœ¡Ì@LüêðáÃ.”ˆ‰ÿ ­âHÊ ÄÄO¨màjøˆK¨†ÏÙQ+Rîß¿_‚Zɦ h 5öG`ò¤VÖ;xìØ1¢ ‡Q¦ýwš ŽŽIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/nav/first-grey.png0000644000175000017500000000050412233761324024452 0ustar mathieumathieu‰PNG  IHDR‰  IDATxcàÈ‘#o€øÿÑ£GCp©ʉÕlbu\ÿ‘Ç4ðرcœ@5ó`ò8 *jÞŒÃ4ä} ¾Çk P“)ý!Ži Žò?ƒÄðÄ9@üÂÇÄ@—›éi0>!ŸàSˆ©†°÷ )ÆTCØË)@ü—bhøö¡ŠŽ û6¾H†e ÿ°PpâÄ >  .¡†*ÅÎe ’¦| ø/\ {Û¶mìè±N0ëA“ÊCüY‘.‰*Nž<) T³h¸.5 9 šC #X̬ÊåOkIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/search-topbar.png0000644000175000017500000000067512233761325024337 0ustar mathieumathieu‰PNG  IHDR©¥–„IDATx­”1HÃP@íÖ±›níèØQ BÁÍ©c§Ò­nup. NŽît,”.Ö­ÒÁ´¡´ˆ¥F ú! (Á!xÿJS =mî]33X”‘"E .}iß±'kš*$Úîlw‰…ƒRÀ‰HtÂ~ã®~Øîf.ïwŠ?‚†¦K$u6o,ëàTÒ˜äðëJ)ÇIoìÆÜ°¾5ï‹e(Á#Õ BIµ¾2ðã 2v÷}Ý!ÃY»ÿÎl æÀâèôÉõ°>r}@š‹3rZÞ‰–Y9Ó5“F€ž†à€fÛe”âãkn¤±4ÁºLèàTÀüNšŸù e\{¹yÔ0[ ŠZò˜`±iìò (<ÚûÎ%Ò¨ŠÌ^€4‘þõP]Í pœ ßÛDêÂæ)…½e Í›K”ù|*++dHcç”鯉Ë:ù-[O™Ïubá50ùp¯… LPXüÒÑã[?-ì@0$©O°¸ûìиКU»óA`8P-)0(·’¼9.ËÛ_‰ë±5Ôhw¼&*?ºžÉ¢Œ³‘nJÍë>½óöÐ{à¾n³ûW>è¢Ý:¢mÝZt9ï7® µ€\ÊmIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/devel.png0000644000175000017500000000107112233761325022673 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®Îé pHYs ‰ ‰£ÒêtIMEÜ --僩bKGDÿ‡Ì¿½IDAT•ÁOH“qÀáoQE&%ˆ-ƒàgõZÔö¾jïoos®Ã»wÖv©;Ô¡n^‚.^£‚ìÔNYBT‡@2ÊHkPVŽŠ,"¤LØD4Íáú´C`íàóÈ‚­[Zá©î¨¾&RQ·v¹cÄ·Ì©ûsVõ™m‡åV/© 6·k,ll,4‘ÎõnU©ÚºË`;a<ö'Þ{DðSKÃ~)D0–j¤‰+IÞñª÷E˜0MˆK!uÒšò}¤ErØKyÔgk:|+%ŸNÚsá!ù+ÚEJ¶UJ>îÅRõ(Gr”ÏÌD p—2ÉWSkýôÐYÕ­º6Ïj¢4 RèM ýAk# ‡CO®&ú‚¾Óò/VÐzç|ˆXÚÅ¥ùsä÷¹ÎÄ%㺑ޑU]nn,•yÎåGŒëw_2|ûéó£ñuèi狉91X.ó(ãˆÈ× éö¸û¬1gzl$û)ñÌfS›bk$'vVgœôD%‹tkÌ·R 'ZïDõ¨‹þ™àø¯A).òPÿ°`OÚ“§Ê¤¸©[ÙoÇûÜ×™ï㣔Hq”°ˆ3$YF¹,ÄÀÃÒjp&¶JIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/filter.png0000644000175000017500000000064212233761325023064 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ EÏÌb&IDATxc 0‚ÿ¸Ü`„Ð, Bù"… H ç¿Qþó‡UÑÇokî‹AÙL B4ÚùÖ7N©‡¿eþ#Á2ηD£2¾­8ðëû×ï¬÷˜˜¡‘ñFÅÆ·…`À6¡ýÑ=[å;¿ Ê€Â_þ6=`›”BUÈø×¼ÚèÌ]áÓ?Áüï zGÌ«ÿ¢(„*=×|þ­ßË¿Ÿÿ1üeøù´á ã9ñŸ{ýnû¹<ÿ;ÿ_¿û?7ª,RØ ˜ úøÇ›ÿ bÇ&0~ÅTˆPºUëáÏ¿Ôî1nE· •ûô%ˆ|$ (DD:¦B":÷­ÄŸ×¡O0² §ºšsil!h¢Ø×Y4âotÉÿ ÿÚ ” l¥ÝøÖIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/plus.png0000644000175000017500000000115212233761325022557 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ .òe;îIDATx•’ÏkÓ`Æ?IÞ.IÓ±ºlN+2`G†g= B¥(‚0_yx>¼_òäå_¥±G9+.¥¦ôÓL²Ò_Ú©k•Õ`p²`<5½ƒˆzËѵ•‰ ”ò3χÆl2¤q#0G£ëÃþz}ω^Áz“‚A"Fj~ÿX/ü"¤g– Bæ tZ ñÓGé@½‘K§2WàØ'߃ió‹ dÇ?~;d®làÊ\}L®¢c3*Çåò0òqg£Ê\³‹qÓÀMF‡DºòqsvQ[µ÷§³b×´ñŸu[™‰á«.Ó ¼*^ÔU^\xüèåYG¢m¶‰0°IþLxáõí;Z„*¶/œsï¥Í#¶ZÒk>Ü:¹°‹©Õ¨SƒùÊÏw¬†¢5þý8¥!ëF‚ý BlQbŠäâ²DŠð¿ú&Mœµ„2ž­IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/navi-center-active.png0000644000175000017500000000015312233761325025260 0ustar mathieumathieu‰PNG  IHDR"l®"PLTE":D!9C!7A5>2:.6)0#)¥üVIDATxc 0!A¨}Ûb©¦IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/feed.png0000644000175000017500000000104212233761325022475 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®Îé pHYs ‰ ‰£ÒêtIMEÜ / ñÝ€bKGDÿ‡Ì¿¦IDATx•οkaÇñoÛU,ˆ£"X¹<½¨Á ¦½Ü“œÆ¶¦ÁÜ‘AºUŠŠ‚»nþ‚(þpp¬“„€XÛÆÁAZ¤ UAmlµn%o帡g@?Ÿá»¼øò‘ÿЍPѱ¡Ä0ÓpÐëiÄСH¹uöE¥éS5‹O‡j*x!X^kͼ¾8Wj›To…îJj—;æFýͰñÛ€iÔgkºïB¡›ÂÆ»só¥¿AoõÌü±¥ìæ!ÔóÔ>¶qët}, £wxûóûù¹AÒ¿Rã"_ïzŸü$t?Z–t±›µWî·Ì†ÚKï£'Å$̱õC]¶{(MϺ¨K£ÏÆѸ ÐÿXwSž¬bOŠ\¿wÜ„UF¹útéýøË,ý—DVnëvþ¡ÈÌDÁ„z}ó é…ûš–;6†–EØÿ˜ÐÅ>Ù×3tÍ#‡Ú#rjÖiÛ½"ÁBÙ„šƒ¨õÃÑÖôkñȪÆS‹Ùµ-ÐkúѸhNPÀÁ!G>º.e¼f §j#hµŠO%j|iNÕbH@Hç„òïù M0kZáeœdIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/horde.png0000644000175000017500000000133412233761325022677 0ustar mathieumathieu‰PNG  IHDR‰ £IDATxÚ­”OHšaÇe‡:®Ô´¶5Yêm˜ÊüSú=4¢å’«‹ÖüC’!%aQ¬‹ôÁôM"k¸.‹íÖ"¶ÃÄÓN;l—yX„‚¿{ž¼Q¯Ázà ïËó{>Ïï÷üþ yE¡PTE"‘RpËçóÁét ¥¥åÕççç ¡Ó骉¤î";A\Zhhh0×nll€a477¿:Ϧ±±qU£Ñ çQT*Èÿk^àîî.<ÔíêÒÙý¦¦¦,ñ@‹‹‹¬V«E}}ý^`<Ggg'¤Ri†;ˆ®ßº}3g4111µµ5ÖÎë}ŽÍüÀL&ƒ‘, Ôj5”J%¬V+¦¦¦è“°6ÛÛÛp8ô‚w5C¦Z__Çòò2æææ …F‘N§ÿíÇb1†J¹\Ô^JƒƒOÑÕÕuàÚ“É$[ ûûûoxË&‰`ffã¡q„Ãaæé›q´µµ»Ý™Lö–H3ÛÝm;&Éȑ5±z{{á÷{±¹¹ÉÒlëõz…‡äèùaïíí}ð›è€èˆè×ÎÎΑÁðàxxxˆzÆIZÿãÓ*`Eç€\.ÿÓÚz·$‹cÌÙKØ …Âw½^w2:úœãåÒÒ¦§§199I=fۖΗ˅¶¶{?¹$.ôF6›=°ÙlH¥R&‹DÃÖðìì,HTÞ÷¥ÞëtÚcâ/peeCCÏ@ºª*¨µHß~õù}gAlÂhɹÝp:U³Ùô9ŸÏ« $ Èq` /Ñ××ÆÆ”Ün÷Çb±xà=Qí!Ý~_] õÉ <¡}þ @‰h•¨Np™EêÍn2™è€ áQ±Ok7‘H$Ï;ó “7paGOïIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/prefs.png0000644000175000017500000000106112233761325022712 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®Îé pHYs ‰ ‰£ÒêtIMEÜ .XXbKGDÿ‡Ì¿µIDAT(S­Ñ;,CQð›ŠÁ3D"Rz{]½žõJ{Õ[ëQm*ÂÈÀ b1‰ ƒÉÄ a;JÔ£Ä@Pz$R"ZjA"Ñà†„ü¶Ô­Žü·ïËï<¾s(êoaÂéQÆÎ\ËGÒÃDmº†> b¨˜+‚ê­Ûz>1Ì»T!ìøwÍö—@#8/0‰ñrjb¡ß³þZkÖ å£þ*1<ÑݵÑàá¡°dK¼µÞ¢E”B–,5RÖ+[í‰Yá¶Å^…•cÒJÝС9'Ù7…h[¦ÄA´°dÚ6«¤œS&˜ÈžjðО¹§©à@òa± p.5¹Ÿ­ŽN[»}lýqÉÔïäH¹+ïz4=mckDl“¦ö1ý‘ÇÊMÉ«Bˆ7lwíg-‡OÖÜ™bä¾²¦–•ɹ¿˜ýyEÙ_Š 2uþ;ÛÄä2î†÷1ÃÁË¢ïût§¨%ŸPvHùaž<†Æ}aQdþ˜»õ:—õ„*™¸¼Ô9|lIέê[#ª=¶]ü@$O!a>xðàáÇŒòèéÓ§²ðÎ;åååj[æpÔVˆ±d¾àó~žT´eüð­tƒÁÐ××'ü®®.cˆ®r·±ç÷Qº€ÆÆÆ‚ç”MMMÅÅÅÀ«ªªÚ¹s'cssóÐÐPYYº(--E 6lغu+|¨¢¢bdd¤³³³¶¶–§Àc‚‚‚?/¯aŠd«ÖÖVlæ|KK žìÎYµ6¶lÇ$øß}oÏÉsü+V¬X·nɸ½Ã¿ïó(³Ù4::ºpðŒ›7oœÌ1ê€É¸wïÞ‹/2sF~ÊÂ]»vïÖ­[,Žf[Ô‡j6mÚ´qãFÏn_þöÊ à³Ùœ––ÖÝÝГ%4pÛA= ùüÊY×¹²ÀëÒÿºß$̵QIII,_8øššp2Çz”‘9T€‘9=N‹å‘¹råŠßÛÛËS¼†9N¿¸[~Íš5pöïß/[uttxzøˆ9̧ûæÞOr fsH˜Ýj hè4~ô7@zþ;3î°ØLü·€güá‡B ¼ðW?ÿ,2> öÝ`Auú먦l‡.›g@ýF þW]q!!!_¦Óé|}}%Žæ¤7n,0_ʃ‚‚˜{ /¾4Ûœ´†ûþòƒáÀ˜£¤Æ‘˜nŽŽ7&gÊ 'nZåÑ‘ËN“É@tÌ~Ù’%KØ|ñâÅ‚ê‡&BCÞÈÈüUêüoÞo¶Eø¶ òî]F“>66vÛ¶m$‚úúú$W¬=Úÿ·Ÿ„ˆ@Ã8Tž‘‘±|ùrR+1I_ÄV>>>r”›7oþÀß½{WÞˆñ_K#½jdŠKŠÁßÿ…Eª@íGaeèÏÖ‡®,´Å&™¢££xF©ÏOž<ñr”ù<ž¢ÙbpxJ.ô^ž={6/ðÅo'T ªŸ®M‰‰ñxWjÔúÆàÙ)ðÈÕp½^ïnùÄÄD*JD)’ÌÝéĉéééÐDDEEUVVjNž<‰[‰d³ÙTèVWW³';ó”ŠÃ»4à)ûÒ›“˜RSS{zz¼?~üx¸“®Æù;Éôóª¥Õ¥Õõ†Q°OÙjÛBÉ aaa ülŠWí µ³j±G‰Q¦á½{÷°dBB‚Çý‘G_p¹\šG‰¢¨ÿâÅ Šj‚+Üá ,Û¡ïÿÒ˜ ßeY­VZº—^x’t§ÿj„ýç°¢j»5tÒtuuu¸Ùlð‹-RóeË–!pìØ1d< dffŠÍ5P@@ÈsrrÜùð„ÙÇ£ ˜R?|\²%&% ªUÿá¨Ę,/†¦teM[~ûþR6rO`áööö¸¸8u¾±±1ÂA~Rœš6Åa-i’^K~’P ‡Î)Âׯ_WîÀžìÌþ¼E8~~~ô¼èHù„ó ‡H™>,Ú§÷’Y½#߇¯z3Ý=‚O]SR?ó¹…ô¼05àEëmmmŠIìÉKi¶8Hs&DôŠ=Â" 1mœÈ°>+Ì}ûöaU˜À¦™Qz'þ‘k)àS2-ð¼õÖÂ*kY½µ±Ë8Ýê|™ŽIiŒ5ÀèÃ"ýûnXžtšé"=‚'Di¹“€——"ÁE/PÉÉÉ"››ËÑE@Ó)ÐÀ«ô¡˜Ä¹¼‘¶Š«‡Jn$þØ ð¤\êD°‘Cl~M‡ ‚¿c(Ù`&—’á¸'ïÞ½;%5ÑæðoĤ|dO_Dp°ŸôÞý΃iÀ‹€wðtòî;c x©ó |QQ“—ùØÛ•¶¥½>2ÞïðÕé@èuä¿Fw8õ‰KõEu†¾?Y41²ý½ð à sçÎÍ Þ»åSRR¼€Ÿ§å1¤Jo,g„dN çbë <¨{§wFŸ;ü­mpÜʨ8ÇÿÑÒgü‹U~V6Ù¹]»vm>à¹xPÒî™’«^^…4HÜ‹4ð$}•*æŠIHgÏž½pá‚|,ñþH{LŠß©¯•æOöNg¬Ùb´XBp‡’:Ë¡+–£W#øªA›xΧâŸ$GûA`wèBVñ±„$ï<`Šâ²³³IþGE²Ÿ›Wé–²JÒy4E’ùæÏ¯7S8Cßý0#1Ý´¶Ò²³Ë:ðõ´:¶´¦¢`ê%ýÀªÍn 6R]çéöX!PÅ?E^ù3;ãÀÁCä %,Ž­~Ê7%2—»€ïeeeÍþ›‰/b’ý{>3Sêv´erõêÕ,³Øôo5M×¶7KâéIÝW]àTÞouT]y©|rAY ¿"lÈ-˜.Š-;\ºtIsȉ‰ ò–f![á;*ÿ©R„Êæß¼§ÞhYrø²½¢&äêºJwáˆñ?5füªü8Ñ¢Ân“¯sOæ0!ê¼p(ò‡ƒÚ‹e¨ÛœžÔ%ß$‰X$yäñRÌg ’"½ ‘aM'ŽŸ£\—RËæÏš59ÁzG!‹¸?ŠM²È׎å«ã8åö»=)dv¤Õoß“pø²#"ÊÆçê!xï—êððp<‚Œ*Yý—þÿ¿º×˜þ ÀGªe§"åIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/0000755000175000017500000000000012262230550022154 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/gl.png0000644000175000017500000000061712233761321023273 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<!IDATxu=kò`…Ï?Aá}ÁIð/¸øCÜœ]ÝÝÛµE‡vpQÿ†(­‹³«ˆCpK‚ßæÎ}ú؈¤•^NàιxLH ú]÷Ïiù|Þ6IX<§ŠEf2ñ1‰ëºWá¶Þí0p>ÇñH+4¬Õ˜À#"ÎmmÓïs2ÁvË럞¹Xð'ªê Æu9"^. Ãkï÷5›¦^§ïSªŒl„Qô;"¦PÚí4z=ærÖåë &ÙjÅÚ6•Šzž£Àõ´\âã“Iìq8¼¯!BÒ ¤Dx>£Ó¡*«U¦RÜlØír6» b…Q„XpBA©dÿáíÿÿ!›5ë5|å2Dlì4Žfh"ý#1_Š[J­ë¶IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ie.png0000644000175000017500000000057612233761321023272 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATxm;J,QE×-êÁã=:òÓt£‰àD#`bhj¦ ô(œŠIÆÄÀ#-±¸çs¬Cv/6E{q÷)<@Oâ l®7 à#Úã•Ì_Z:Vç«©>?˜—Ò@ á÷W’?&ÝÍcK ÄËçÆÜ:íffñÃ×G¼>EÔ){Ç-Ž{˜›1‰m´†ÕÁ$À0 UÏlÕ=¤†Iuµv¿5TPõQ0Ïjõª¶%äÜiR1™ ©–m±êáñ ©äjS&eUÆì¸ASÀ-“B¸.þ/ò µ¦4@)…‘¦åð KÁ¡pï ÐgÖ·ëå¿¥»«j~ßž..œ‰oJÃr©ûŸãgIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/cz.png0000644000175000017500000000063212233761321023302 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<,IDATxu?KÃPÅo룠UˆPü3ØQA\«“ƒ 8twwèñ‹±“_ kÿ¢ø$¢BóÞ½çysSC–''Éùñ’]n.[×g-2(²ZJ1àÖ1k¬í¾¥r¸·J¦-ÊKEišÖUÍÈýéløúS,Ê**tZqE²Á3èì'qæ3£º)Ùý“°àô Y0³ó K‰Ë’ÝŽdó±ßÞhè=˜5I_˜kIB½žSH?T&.¦w;ã‡Ì‡è½„š €öó÷áñç„¶¶Á¡é”Yš&óÒÿoØ ¿üÒ=êÒ×Ì*.ºª”:Ñ3y]ŽeIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/lr.png0000644000175000017500000000065412233761324023312 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<>IDATx…‘;OA…gpÚ `Bã?°‘Êø/hí()-lcbK§ …¢jc⃇BÏCC(ͰsïÌzg×ÇnA<¹N2¹ßÉÍrÆ ìOæ‰Uícè¹?pR¡~Ó‘RÕ¯;GÇ cŒÖ4=€RÊqœù|.¥œÞmìîlÆb"¿k4{“ý’‹HcÈ\M ‘L=ŸUìB«5Èçsµ«6 Nž¸ Ä9ßÚ+Ò¾t‡·Í.A5êq©hЧþ°5áÑ€Š¦2• ³éÒJÜgP›»X<™õû¢OdNË0[¢…!!-Û ÔKnŸ¢éÌýù%—Ó(5ü‡§Wºá½ÿ*Ú‰õò3z¿DÑß þ=Öu,›½«Öøçd´¼ºö‹ †pýMzñ˜Jcøsb ›p }nÒg Æ…<IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/no.png0000644000175000017500000000067212233761324023311 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<LIDATxu‘±JA†÷nÏÆB¢Eb"¢…XÚ¾„…v¢…b'>‚`ca+„<…PbgŒ ¢EX6îÌì8?œB‡áÛ0üvþÛìÅ•5§:¹ùðuµ<ð>9gí@4±°iõ䨍ªgÛ,Ëj‡*ì˜MJ`2=µ;f€8½¾ÙñØl<˜Â‘‰HÑ1Ũ‘|«UÞàÄT‚3%¸9â_#¤Ö°E0'b34El èà2h庭•É–F£ÌoÜïÌ~’¤Ø9%³‘€ÄÆD‚¹MÕ‰‹½n&‚eÔÊéÑåûéV]ÿ©<ÏCEßûéý]î?WÚµ®¯¥ˆÄq©ŒA\,.ôº·…ÅDD)î5¦o(Ø'~$Ç‚Ð00çul23…æ›­\LÇŽAÏ µè\Öû}Âùª+7ÃûÕÇZ “±gv`Y?ôžZ’×UŽÉIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/sv.png0000644000175000017500000000064412233761324023324 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<6IDATxUP1K3AœýrßÚGˆT,Rˆ`Jÿ—(䨨ê/±H!Ab°N!6TCdï½Yßî%¾Þ 3³wË8NᱞۈÄK܃Ô;3ïò|³'PÊ ¤*D‚haM®Ó f³¡…ÌK0RIÌÙŽ0R±Óþxw;™ïvsïB¬A”ø6$¡ÈÿÝßœª:瀘Fzl>Ÿs[{§Æ›±XY–ÒÔRM§‹ñó»°:^|÷{Í8G2kÒÍ÷ò²:Qj¿·þçéªnxÿµ¿]üxãQ%#$–DÑ”d®­áèÕ¡˜œ]t_f~Õ ½¤–*kFë–D)v:ùÍõC†xvf†J4ÄB–0HKuÙu,èÐA Àf¯ÀF\¿¤XlMúÐïÚIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/gt.png0000644000175000017500000000060212233761321023275 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATeÁ1jUQ…Ñïäžâ „XXXfNÆÂ^S ŽÀÂJpÄ™XY‚…†p¹œ³ÿ½s}`‘d­¾¼KmücXýëÛŸC÷°}»úòÍsdd6s ×Ÿß²+gª½8?[N€ì€Ó™÷W±£ŠœïŸî:Ýõߨ؄“òŸœŸ7±3+/ÏrÇØ‘)£JBŠ9*ØÜ‘ËME9*òˆ3*©È™ƒŽ¨P•éL‘'¦bG•©F¹#ª"gVf‘‡ì %Ž9àŽ¬´Y™b*OMe§¢* Î°´LeŠQyŒ …DFÅ®³zúäâ”YÙ­±k­q´4^Cš àÎÁ_¿l ³šÕ^ß<; ÉG¿oõããÌÑ=Ças–ÞhŸþIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/bo.png0000644000175000017500000000060612233761321023267 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATxm1ÊÕP„'yW+;õ… ¸ ÷am/nBÄRì܃‹pÖb!áåï™3cr’'†áãKΜ\¸ƒp{ÄD,!ü' >|`yPBr ™«Ÿ2G†™Nãòþc-þùYmÇ8½µ¹1båðø, ]_åý]OˆVõV­eT¨’ñáuz†vy»§KÆlN‹vX!ߤhõñÞݯwh¬´¹›„>JzIHE M„ÕÞ¨Û Ç¿ËUËF’h_ˆ—3«+s—Ô«Å4œ–Ï Ú› ocþÞ§PP\ÙÕñËñÑ+ó9æoŠçv¦bŠâžýjS™ÎD‚ðÀ¢b/ù;ÂÁ?­#|·ûîfIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/vc.png0000644000175000017500000000072112233761324023300 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<cIDAT(SE‘ÍJVE÷½Ÿ¥ %¤öÃA‘è8¬‰Ð Щ4u$Ô£„Pô•“5qPVdÔgD¨í½Ï9 îÅ`Mkqv¼ ŒÄ‡U$:ÈD™˜ÜØ3xsóÆÄÄ•ÈâÂãññ“ªÜ”p[:¶¬Ia¥vžîŒðå+32â êU:ÃÁ½#*´8µ¢‰pÚU@’!¥F§¬ú[ETªKʈŠ(;QÚýΟ´4«s^îsõ:—gDS)…:CÚe§TMéýH»‡\šáK|ýo¨Aopî )•œ.ÝžæÃ›Üz§(>º¥áE2ÕõüO’ ¥”U¼{™Ë³|öQ¿¨'÷8€~“J9Ñl'™vV©Š(®\Õ‰9@÷(*ä WôRÍÍ·«mç €î•å|…¨>zûµZÎ>—†ã ¼“¢÷–my1çZHó™æ=þüùóû÷ï_¿~ýüù¢:cÕ Õ„ åí'Ÿe`íd`ßY´á~ðÂþó®ygpë:‡¬Z«â°ªÏù†cRµG¬ûN30´20oÏßpÏÚÏÚEïBTÃÝýõë×Ðy—$÷ˆì7ë;ÉÀÐÈÀà¿5kÞ5ÏæSGî~€¨~óù›~Ùa­¢ƒ/>|þòåËçϟן}"±É¸t?C3ƒèÜÊÍ÷J!ª'x¨—µO³âˆré!¹Øí Ûn~úôé#¸O:)‘!tþeˆ/¿üø2ïj@ã ïiݦ_pšrζïŒeÁ~Ó®“o>~‚†Äµ ˜~ðàjóa†vÖ~ù٠“xûØ»;Aˆ¡”!•!té0ãÓP4Ž.3IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/as.png0000644000175000017500000000111612233761321023267 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<àIDATxU‘ËkQ…Ϲ3“L Õ†´ÖjâXZ>ßÅ[ŠVDAÁ«"èÆ[¡ÿ@6Õ]¸êBĆ4UÄR$©$¡-FÑúh«54„Ì}Ì\Í„.ü8\¾ ‡³ùÇQ• špî».<€$ !÷q{ž HDCÊWÿªA””¦¬À¼£-kàvG‡Ñ“x:“¡”B) ’àBA°£xyZ{»«f[ÌNb]Ñ\þ›Ï-KÁvsÒñóýælg¨¬‡Âvò°qnVkñÅ£¯O\øÒwåjwÿ*¹oûÕ‹4ãXEƒˆÐÞ„58JÚã*`ifâLJ7´-aëKªk“^¯M¥6˾õÝØß¾LìµEmåá¾3wÛ‘õèz)O4#Ý¡/ í ôÖ7¼–_Ë|z’sÄ4´X§hd@ü™Öª¯°m§À†sòÆ·µßé4™›SŒ±=¢4¤eºÃ‹šÜ %ûB#—h¼·öéëÊãVôüd¶…ç”1ŘQ`‡Þ³ƒÂ­“Ùá•çñ©;4lÚ©Ƶ›‚êõ4í3ØØe\1W¹Aç Q¬6¢¿NZ³­zÙìÚm|ös•õ­»Ê¦üÿEðfuÜzìþù|APŽŽIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/tn.png0000644000175000017500000000064112233761324023312 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<3IDATx}‘¿jBQ Æs­«à$H½"ââÖî>ƒ£89;úg|g]ìÐî-N¢ ‡W×ö ìP<9çkÒ\k—6ä.'ùåûÈIƒ.~ÿÿ‘i-‡r „(òìÉsÄ|ÅœrÌ8Ÿ³™ÀÛ»´J¢Ý¦bÙ,$6l·X­p:Iwlj’îV‹ŽGŒÇ8Ǩ×Q¸Æí 6Ïs ÈI73˜)¬×¨VÑëa2ÑñÍ&^^M$MØ›K‘Ùý>F#ìvú“ÉhÉæ³%¯ãáNªP(àéæsU¨T~€èbéûÊ\¡VÃbû”Jh4°ßÛ~¬ÊÈúÌ¢: Ðí"— "/—`t+d@Ê1åóÊÈítJª®#ÉÎrYZ-ƒŸwÓä!ÿ}c‹/K4ÿë3KIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ki.png0000644000175000017500000000111012233761323023263 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ÚIDATÁA.Q…ѯ» ""1"ve`ÂÌ,€ˆ` Ö#†ù¥»_ݺåœö` €ƒA ÚGw7U•.+ÇÚ>ß-4?O½R–*ÖŠx{ym”¾>(—²$¤ùi?7‘ሊîu™ŽO ¨,ìÊ,©$gLgû[úc§G©»‡c‚Ö`ÐÚma×Ú‡‹½:‘­éjG·¿væ2WÄ$Úæáþ0.¯ÿÿÿþôóõ” {‡þ ÿøxýýþý!v‹ ñp`”¤ÿ÷‡xôIE¨îqj^—¿øM9({Ž–ÂûïúþjPŒýý{ òú§p¯úìòú”y“†[¡À÷K9Ûäö˜Êù`Mþÿþ|™äþýþiTÓÜôn£ìq\þýþŒ´í 2"sŠÖÞÀ8°æYHB5 ±äûûþjUþþÿ”¨âüýþt\Ößô·Åìxb">›ìSFµÃìE9·ÅîüýþI<þþþ±¿ìüýþq\ßå÷ª¼ë:0VFŸ±å÷ÝØ­žÎòòömZà5MþþyµÞcø•\¨óãÇ/ƒü3 ‚ã§=ûÿðž{¸‰°±]4<ú­*vIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/cs.png0000644000175000017500000000055212233761321023274 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<üIDATxu-NCA…Ï…„C:¢¢®æ%Ø&l€5Ut•H¶QÓt ­ªªiŠâ‡¹?—ywòˆwæËÉ—#®žo ÅiýŸ2tJÀÇjõÀÌ+ª.bª&Ò‹°±h´1ëfó’«œN类Z×ÚÊlrÑÂZŠVŸÍ´Xð£ø˜B ’Òè-ݬˆ€UŸãtïåLço¡’›Õ™ÐÙª.ÏêÍ&³ÙëØ´ÅÆÁn$ôŒ}É0óæÑ,Úb (¯€¡—ž2 _ë°€kÁÎ=ÍôIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/si.png0000644000175000017500000000065312233761324023307 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<=IDATxu‰½JAF¿ÙP¶ìÄR+µ´ò,D| ÁN±Ø©(ˆ`£éílõ llÄ&! É®.sÆÙ¬†-ôp8óqÇdY† ªZ¶:&°ª$‰÷ÈsñÉtŒ(Ÿ*išZŒ9>ït{ýX¥u¸Œ(òaŒQU×OŽF#ÞÞœ¹ºí¥©¨³2)±ƒ‚¤a4æ¦.O¬ôÓÎ[¾¿ö"µõ½¥ç­ë!&VGJn\RçBe0$àÃÊ7íÞì]›IÈÏ;ï‰ ]° j+ÝÇ«n LJÞ©ãÈ HàÄüTAÖ¶°³‘ ‡]eÇJ¿% C˜ÕqñER«7Ïpawñ=éç+ˆ|йÂrL.L`1ùâ `ˆˆÑlz*®`‘)6£lP¤T“Z¡ÿXò ^ˆ\1øaä³IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/hm.png0000644000175000017500000000117112233761321023271 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe< IDAT(SMÇOHSqðïÛÞhKÓ¹¶i϶å"ç¦b ³Â²Ù""(蔣 d‡.EÁ@:fQÐ%°F1…(­\D LÝ5ÛÒml{¿÷ûÛUø\>ÒÇ‘Û3ÆŽèÔúX1.s~…‡¯·þ<¼·}ð~ªE @/ $¾XÀÒPdìQ´Ø4ŸH•vx,6Ëë4ú²ø›Q®br.e)³º‘˜]y2:.¥L&ç»úÂ_R.sM3Ô×i\ª©8føpBÉ'2—PQŠ(CYTú«ºÖJÞ|vÑT„‰LHÄ. ±BJ`€*0Qíhªªæh¨¦Dæ]Ým¹Ëu‡´õû2%>³µˆ¾IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/nu.png0000644000175000017500000000101112233761324023303 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<›IDAT(SM‘M(EAÇÏÜ™‡ûP /IIùHYˆ$Iv¬­±””WVbg¡l¬d-Ù°’$ås¡¤Hè!=…—x>î»3gÆ™w=¹ÝNso¿ùŸßœaÑèÅ´˜›ÊQ9á‰ÃžÑÊyÏ÷f¯Û†6–²Ý,¼FÓƒâ%\zÝ73þuw#l¸¹ÿ²°&y¶#V[75,òlÇÑD‚Ñ€2žâÛ¯%U¬x9?ì¢p÷Þ4|4͇;Rh*_J_)é0æ¿ùŽxŠ3Ú«žŸ÷ ‰W#=“üòµ4Z!ÉP²"FkëÚ«k++¾a·ÕíU+Çr¬4Q°ê\øªom\ãœ4“J˜»XíÞùìc˻ˣ“þzl}Fzb§¹½®eh:´vò@–¼êvËsH‘ZÓÑ ;­Ò_´ Ç{H ÄüÑ´â{K”R V`²2¿úwêÔ6˜¨­`C¨P°×Á¹FœFG¢†3@eœH+–ö°+-(.÷l¤ ·Æ4ddÐ^óï&ª?`Žt±>9IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ls.png0000644000175000017500000000104712233761324023310 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<¹IDATxEËÏKTQðsg®5–™a?¦Éa"Ä„ˆ„vÒBheBàßDD«¶µÚ¸ l­‚aHVC ‹pTÊFǦç5¾y?Î9÷Ü.}8|ÏæûÕ­V R"ò?SÌ,‰íýÎÍ‹üÝÊÙÒu1ÔØþ\¼zK©,€uÀ½TùýÖÇÁâš@~x|mi–â`°xM©LZ;äÇtûÅ×ݶ?4Ð ­Adcy®]ßkº^£xe”²©/;ûw6Ú~D„ÃÏtÐiX+gJcÁAƒBŸ)Êöä\5Dº?¿ZÙé¢+ÆL'ç(߆!ÐGúNŒO}zõˆ1›¼—ÕG]»Z÷î̯{Š¥8Æ )Ód]€4üþ¾|ª0  êÕ·Çn\z¸Pý°å…1“( ~ÐÅ2f›dÈ-"…ËçG'”•–O=¯Ô<"›!Œqp–òß0ã aàd ²=VäõêÞ“¥_aÄ(@ÝM,Ín¢!²¸qw8øãÓï~Öþò¹½œ3Ô÷’rë¬ÈgÃlÙ8Ö7@ÐO߬LϬÀ^ `¤ ý àä0II²þ¤Pe;,H:IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ax.png0000644000175000017500000000102512233761321023273 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<§IDATÁßkqð÷÷y¾;ÏcG6Ó$¤•åfwþ’‘´áB”$n–¹RÖ.°¢$Ê­’Âß ü «MæLg;ç<çûùíõJË·v rǯµ{Ç®mûFoþýædX¢0:FÇ3ܳÃׯ.#’{´çàÑ~ºØ<[»4™Ö"ê,Æj¬Nb[w>g.‡laNâ÷^tÍΠ;õ8˜ÙЉÛÉã-À9gN0@†ÄÁžLÙ¡îjaæf®î 0Lôm©>ÿ8Ê‚!¯öcµ±¾S¹Q¹²Y©ÛÓÛŸ>伺ëiw"1-ѱ¿<€R¢‚B‰)Ê4U…p¦Ê_ùM;s¡çÓÖ=%oŒâzcGSpåV™U¡µkv›©ûý2‡<ûzóù•ÁXÔž\~7cÓhqåë-U%ÑÂJ¢,Fbgûß?"ÏN£®.B’©8'Qj†°€SI@•1<•…¹,Šªw‹„¦=5ßtGÀÞ3QgQµP# $¬¼Å¿CFÇ?Ÿ>\¸½‹¥7 ( 0 €½ÿqL-+> IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/vn.png0000644000175000017500000000056512233761324023321 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATx}‘1N1E (S¤¦¤£áœ‚Ž+ PÀU€:‡ â¨ H™ÿw,‘¬„}v­ÿÆßöˆ²®~øý§~€ù¼6ú¾TuîJgìb#±Ñ—‹Å¤dÁóKµV!e?½x!D f³ºCô Üœ˜]ñ¤[ (R«ºmìLr-¾Ä¡@ÜûÁÙ(m‡âœ€Ì¥¸ Pê(8Aì:}œ‘òˆF‘z .ªV\O+"š6"Iùo·I™ä\¼‹»à^¿ã±Ý€-»E¤jRc¯éãXl‹eà ä­”Œå2"åªUòsdžrÇeÏÕÚ”q>‡ùÏ·ú‹sUMï´?ñIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ge.png0000644000175000017500000000103612233761321023260 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<°IDATxEQMkAíîí…M²,èŠä¤ç•DçðCoü@ÍAüžü‚à)‹ü^rPÁ…ãaѰ*Ñàuaë¨aלŽú†™yUóêUMÇì/¬µîél3òÑÈV€Ÿ$½Z­†Sóå³èœá MDV®­!è¹v aoßðs>kŸ Âyë¯ûÓOïõþ’œ¡ù˜o‡öjïãÁNWíöHPu Qýü¥ù#³²³ìB²G­±‚¼x¥Ùð¤¿Bœ¦ãéƒûõ›·ñwÄDzDc0Ïa÷ˆ¥eô”a5a3%æþ|ôPÏD³E j`dl ÎÌ xõ‹œ’–’Zדє÷VÅYŸ:Í8·JU2øÐ§zqá2ó<´PãÂJ,4½î ‚´Öñv·,K¥TQÓ»w~ݺ–¦i’$qÿØX¢ˆH¯×—›áÖëló9:èÿ??}2ÙÙŽÖ'±¤›XcÉŸ›Lþ «Àg¥âœŸ½±*ó¼~õº[‡‡‹¬.ǽN‡ú&ý>…Nç@üÒ¶NsþÏIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ir.png0000644000175000017500000000067712233761322023312 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<QIDATxu¿îAÇ¿{w¹ŸBL‚‚?4PQèPû ¾=ñ°³4Æšc© !!¡#9Ä`¥†xÜnwgÇÝ;Î\ãg¾ùd2™ÉfÞ7Ü1€.],ØJ0{1sË2¤ kmŠ(EZ³³"µx»p'â”þ0Lÿ–4“$¥II#•5YËÞ“><ËWËfØl„Szj×ÚÇ˱[ï.‡n­ó-ýÞ{܉â¨_ïïÿìGOGÉËD‘3#/¾füõ æñ˜…\b×â8öÃÈýñÿúÉaÀïßq•üŸî…ûò²ñ|ÎJñtʾÏ%žçÏgÿõÆC^¯‘IÞn9ËœŸ=ç `cxµ²k\¯Øí’ÏŸDø“‰‰"HÉJ¹”Mµ‘ ~o6¼[†VËM5A+(%\¯Q؆ÈEJˆ0•Àú?)ø Ï{CR¼uuIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/va.png0000644000175000017500000000072312233761324023300 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<eIDATxU±jQ…ÏçN²®º«K¶0QIiÑ€•…bá³ø >ïàˆ6AÄÂ`³I“bÇ`Ð8fæ¿ç8sÂù8œêûü¶ÿe áðD‚Á†·v.ñ,NFððòÍèP‚Ô7\X²ñè,óù<⯠¤þÆ¥F6ÉeÌZÊm$#À¼½°‘Ôwg‡ºö£ÃíÝÝW'M¹~ûáh´J2i±DÛ>Š?ö¶>¾,“±³ýíYýç«»PYͶÚï;ÕW×.>}òüxooöy|wóÍpüˆd$ äùœ<ßÈ Ùòñ¯×¿«·7FÖìʧï'«×–Š2Ò¥Þƒ‹y» ¢Ø–ÃÍ•ë÷fß—‹Ÿ÷·LÕ¼Š$²wª.°(6E1QÐùu bXéîÑ’£˜BnrG: ÌÌœ›L$BÆfïÀ¿ @ïã¹ \¸³E¬ð?ùS–F.[ÈfIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/sh.png0000644000175000017500000000110012233761324023272 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ÒIDATxMOHTAÇóÝõšÆ’П)0‹Ô¡¼mìE:dDÐ!Hèt ¢SHP‡¨ Ñ¡@—ˆ0°.eRС‡En½Êu­ÝÜ?ïÍïÏ4»$Ÿùðæ£Âûnyúº<3ÃùÌíôöäÁÑKý U0âÜ@«ÌàøØQšé=°mú±Aù²çÈ–ðý˜Ýú.È3[dFc‰„…‰øÑ­»Ê&šìåaø•‡â2[ß·•ZõÊDdÄ I¥›ÖûÙ;÷ô[Ù°3ÕÕò§$:²M /•*êÚ|¥9^æjä]|°&¹ÄL‹%ÿêäYã Ÿ¼éÄ“þÓå¶Î°ymv× ÛÑ1ݽ¿[3 *é\µD†ÁíûßlÜ;ûµ[r¿áù«ãÝéÞÜ”`, s³íÏF°çáDþš>…Çν ¿…¥f7«¹BðñgL}Ê¡©ÄmÞçÑëÕ Uú˜×pÇ2#YQ1"еV dƒ8ñýP°.iÍM¥‰ÉÅ€ˆÝ3¹Ü!¦nnX>|ZÄ™!r-å{6·ˆˆ¥+å1’4`úgË,õšÝHºíbp  `V ÿì•«4¼ú/G9IÙ,è™ÞIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/cu.png0000644000175000017500000000076212233761321023301 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<„IDAT(SuQÍ+„A~†ZÛÚ¢$B}´¹8H))i/¢|$)'!.V{C{Ón¹“‹h¹8ÙÿÀaÊG»b‰}÷™ß˜÷ucæ™g~M=3óüv4õÁã‡õ „€ Øâ—]X6<¦€ÏõÖá÷òjEŠH Ã’t!I".'Ò'û Wì(_[ýx|ª˜ óž^@i™R(.w#wgŒ½år,xWVðð`‘ôOŒ£@ý3´ geÑhiWÇ y+YÑvÑҟ炜oh–E®¯ò,³7 J¡£C^ßðX,/ø™·5Ñ<Âm=¥-$çdk Æ:ßíî!{Õ"‘’`ÐÞÙ.X…Ë@ûIpÌ"˜[çí¸¡Æ{¼|ê|óó*Î O¨ÑПhÙl–e€Ê™™÷tÚ77‹Á!·#¦+nE¦_0¦Ÿ_2,|MMom Óx“7…trRIRR!¹™`w@gí^1T§:í_Ø.“Ëp¹ä÷:\å^¼‘`IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ao.png0000644000175000017500000000064312233761321023267 0ustar mathieumathieu‰PNG  IHDR ù€šntEXtSoftwareAdobe ImageReadyqÉe<EIDATxeO±JA=/¹‹`gW$`0 ½ø©´—t¢ "?!à?˜ÐO°Lc,R‚ BÒ¥Âewgwœ¹•ñ± oÞ{³;«Þ€@·TŠ¬Ç­˜rs87Þó!D!Α1\1©Ö¾Ìç)0ˆüjEœCÏkU|§W8Ýw¯MÎ…tÒn»°‹\ÓÖ@j·ïô•5n–’ÞnAk®Ì@jeMdI*"«ûR_UÍ;¤ÍF¶bמ‘ßV’‹/ã˼9ùT»Z¿àÜ%‘ê÷ûEQlyš#«Å"9=qÇG~ò°3›)ƒ•çùz½N\ D ¤,Õph[{þqª®/1ZXÃZ«z½¿PUU¸)Ö@ÎÏèéYdYÆ/È@§Ó‰¹ˆÿ È@·Û…"ý­ñ*ÑR ¥¦ÇaIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/fam.png0000644000175000017500000000062112233761321023427 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<#IDATxMÏ;ªA‡ñ¯ªÕ+‚(¦®ÁH·áV Ì4p5&.A\„¹‘ç1žÇù[Ýs§ùЦ¡~}ª_Äåéû|ù ¢°â\ØÇ¿¿ËàQÄú†wÏ#YÐÞ¾Q™Ík‰ì‘/nþp/J£ü¼¿ÁwS¹£o?8œÔEÊB§ú%ù7í±Rø1÷-’§¶N—îßò¿EöCãÝ"É9Ö®R1¢B0 oFÊÌ—¯¹»7ô—ðaÁ¢5†e.ÈB8sT7mÀô'>ÅÕ]¼.]«@™Á±-¸]åÙ\ð^o÷¥}/ßÂ{yp*ÎŒ‚E–Ì\°²©®Z_?I§¯8ÒÄô×k8̺â™!sFT«ù«×Ix>”nìŠÝt®›ÏNòì ˆ [z‡DÀl èE ¨×$Î>ÛýÃMöûX|ê¶Èâ§`S8¥< ;wàø¡míG7ŸØ(µb¶¬.FŠ„Aƒªi$1eލ¾®·e/Ñ¢ÈaÚ'ˆx¹[¤PâZúñ—MYݦ IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/kw.png0000644000175000017500000000062312233761323023311 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<%IDATx}‘OŠQÄëµ1ˆi²ˆ0à&'>€—Ð3¸s+äî5¹ÈÂäY»u¶ÃÀ„мï«zó¾4½Ì?ª‹¦‹zÍK¨ú ¼z>¢1ä&¶ÚâôZ2±ÐEʽ¸«bÆ«Ëvø}ˆÎåÿŸ;~&ßÐhM0ÈÌY¹†u»F(H…ô¿üúýËüÝœ¢S*ñdÑðför6ý6I¯ê½[t«åªÜPJ©k»(¸ÓÌÜ]P¹-¤$©0 dË,Ï ¥HŠ3Ë9¸Z,ÈáüÕ9ü¤š¶=ï÷Ñ|ûq±»Ý¥6+fÕU}np¾ØlN§((ù¯·Ëf½³ñø(po®®HÄ, ø¼î÷‹1(Õ<è he)†\¦IIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/sk.png0000644000175000017500000000075412233761324023313 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<~IDAT(SeQ;/DQžs÷Z,ñˆˆf ñ/HD¡ð(HˆÊ£P° QéT …°¥ … Qyt!² +Þû@ví™3cν²ñø2™ç™É7s”ùÈäAd²–ü€ò@ ]©:¡hfö[kY1¼äO¼?>»þøÌÒ2¤ß™‰ÑH¦ht„ÿA)…ˆnËÀíHouûùUI"ΓS]5gs‹ñ, ’1„†ESU…>w“m-UmÙ,Ay÷ô˜ñ‰—ÛÔe²5’–M9¤pM̽c„â…9N¥9ºâ8ü–sX‚¨Y£uŒwÙ!(Ôoº†67ïâóøìën|Ø+ÖÆѤ4;Èr õi¯T»u‘™‚òP¦©uz½ Ò‰¡­ÔþY6Ú“ÆÂÚðîΊÛH\ÓI ^c³õÍjû8¸±V­5çr,ÚwP 'Uš¬Pòmn_?[¦6ûíÈ;Döµˆ‘ ¬<žªï#ò¿Ã?%ÁKßG¹Ýó´ÜIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/jm.png0000644000175000017500000000106112233761322023272 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ÃIDAT(SU‘OHÓqÆŸäÑhØŸ¡,6WQ™ŒF„"ú yˆ¢ º¤uñP";DQ):è 3ˆHÐNA¡¤ý? ‚©­ÅF Yïó¾ß_q<‡çð|ø/x™ßhý„ñÀÐ"@¨ÁÇ&ÄBðŽw¢?uu¬ã7Rt¿ÔfN5Puªäò*=RÍ–5:_ä¦mϼÁר3ìMfwÔ[]•õÎq¢d HG’M!vD$–É1¦^Æ€Ù|ÐÝgvYk /×YzNR?t‰ã™ˆœ¨7Ï}òð)k£Ä`få?:8ª“m;ÄcëÙ°”fÜ’©Œô ðí”\ÍE@ÕHªjÆ×kwÙ}Q6'8~– 7™/Šˆ, *UU¡ÄkôìQ&¢âi&×òF§Üêå‡ÏB’IU9¼[Ûʲ0ÓY¹7Kq<‘“Ilž~ÞO«U «ÂzªÍÛ™+ñö-ÅÉõo|Uà•˜\:ÏæF{4l¼†jtÖ+£oò|’³ïÆx˜tT§tô©]YmØþ}–ÜjÏGàM aÆœx‡’ÿÿ»²ØËx¡À: ïÄôüñ/=`„Ñ\ÀIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/rs.png0000644000175000017500000000063512233761324023320 0ustar mathieumathieu‰PNG  IHDR ù€šntEXtSoftwareAdobe ImageReadyqÉe<?IDAT(Su½JQ…ÏfoÓˆø51©SYÚ*êˆXúZ;Á×¢VÅ2Z ‚ $b£(A%+›qwæXÜì² ¦˜9|gîeœg@$i²#þøF€±í •BH%”L+u^›'& üº{T «f|­(Ê·ËÏBØS@H’v·W¼ Ô˜TÀ.ìÌì¶n¬3 3½©–ê‹sK×?=P>–ÑYmY®ïŽ6^ Tµ™Âm±d@¥(T@5“•óSÄqÔnƒöL2ÀJ ( ¾·®Âã&I¯8”íâA ‘†a:Ü­¬Wö•¼¯ïÕ.Θ€ªzžçû¾Óï÷DZïÎÃÓᑊNomU,ji®ëAàø¾ŸÏç‘IKdé\. #"QYWUÓ?ü§_›‰þ…yš&¼IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/us.png0000644000175000017500000000103612233761324023317 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<°IDATxU‘ËkQÅÏ (ˆÐ.Ô.4¸ñohÕ¶>ˆ¨+B›‚ Å…Š b‚ŠÖþRhQ0UnM”VB‚Á2 A  JˆIœ¹sßç@F=¾ûƒË9܇ðN/#È `7og^rðûçï  ® îÌ /”97F–R“#|¯,Žï1…W}Sû,3˜‰Ý‚J¥Gq`,7ô°L–ଠ[ŽA~‡Ëh4Ñú…NA &WÞ.»ÀÒèøÈÄn{ð¦(åuvº¯x)Ø;½Áh\QÔSÿù0œóýÂ;UÍí*,’¥¸ÛhDÌ>"¼1ßf]1:–J¥¦Ž¾öß Ï{>?`ÿUzš—Ùë‹ùÖÖõùm;û±Q¦®˜ÙÍæ–ÍÕøÞ³¡‰ìÝÖ“Æ ×mTÁ‹š5›fâî(rv:3þ¤ZµZupp»Ö:iúÃpG³„½~N:ÆÅE®×ÑlºÇ–’ƒJqZ¯»xâþÚ'±ºº’Éìl§Ó•ì½ú2FK9¬YK·®‰¯'Xþû‘èÚ@еdo÷Å:LHÖëÈIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/tj.png0000644000175000017500000000063412233761324023310 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<.IDATx1KA…g÷¢áà Z…¨§Ie/Øû[RXØ Bm,¬Ìoɰ°±M/"¦±òŠÙÙñݬ–~y<ÞμÝpæ™~ Q€£ÚcÊmè`=šLàD"Ê„•£¼Ñ‘ƒ÷/³.u+AÓ ‚BãÁ©s8n—eó§ëužçQU¸{»·Å‰R&õkvÕ?0³ !´mà—OYyivϱÒÀºµg¯¥ºÓ"”M]×EQÄsü©ÊòQ7Us¡»oŽnÓóÖÚÅbÑIϧ`Ê+¤V‰ô…†F4¾WŸ•gïÅ;v²“èÍбxö‡ó‡y‡¾É z§Ø! Ê[gÌ‚85ô‰zD]ú'?Õ´8ŠT¤IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/so.png0000644000175000017500000000065312233761324023315 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<=IDATxUQ½ aœïòYD¢"( Ѽ€¥¥…àcø¾‚µ–Vv¾ƒ•¥ÄÂV#XD‰IH¾›1ËqˆÇ°ìró³[V¯¼;aü(‘hÂÀþ¡Mµ¢n÷xñ4Ù¶ÃE†„é"ͨŽáå!üòõ¾ÖšìŸ‡“J9áüM™‘Ío÷R'Ár¤+˜6ø}ö㥟<ðöè&FS%(—>Â-ðèžoÎ}á?{èÍ¿ûb)ÙÐÐ5"ísN|øæùÌw{ß¹êþŠß·J0ª2’‹úáÕuÛ^oüëèÚMï‘s¥ ÂeL¼TÉ˅߬}¯nؽM¥/È Š1ËÜIðö³3óãw¸%{DÅITwë¦dU¡Æ·¾Ôv š ž°›™ÀÔÿf zü·mxí½ôIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/um.png0000644000175000017500000000077412233761324023321 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ŽIDAT(SMQ¿KBQ>ï­QHý®:ºµ„-6544´…C8IÐTKN …³S:)AáƒÄA—¡¥†x¯¬—ú~Ü÷î=·ã“ÄËÇážs¾s¾{•ý³ø.€s~õp$G QÌP¥Ý¡@qßù¢º»g+‚úÓ‡çy®ëN&“QÛ¶ …‚B Ûñ‘Ãej&¢@ îTÎa4FÇ‘ž‹¾¯ÆVßjuÒMǪ­Ï]bÃ̦×*†i£Ô‹EêŸ-ªJTUmÐh耫†EªTM¨úÑBÉöö¤ïOc†ÚúzìñQ'w[É•JÓœ1,⛦y˜ŽÞ™Z¹<{R!Ö´n©¤óÈ1Ý’0-Ý4¿%žÔLçW™ iË0œûœC<¾Ñn+½^/‘H!"»SÓ‹Á<¦#3Çù¼òžL.çr¢ß—Ã!ŽÇÒó(9Ž´Îç¡Lˆ¥ÍÍÛNGiµZ©Tj¦³8a3Æ|ŸE½üòâByUZ}þ‘ò?˜Œ"þpìˆ 0PASAYCIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/vg.png0000644000175000017500000000106012233761324023301 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ÂIDATx]‘ËkSAÆÏæq“&¥U¹²¢º¢øØHqUÜÕ… þâ²¸îÆ•àÆ*B-EA¢(ˆb±6©"¥ŠF›Çó˜ñD(á›oÎÀùñ[LðèâԃΡé›Kýs…§~žÌ¿›ßsæ6 @¯wÁhzúñÝ*ŒD¶¶lý‘b”Û¿÷Þ/7…É;&OÌDnaáZb~àj¸¶+ùúaØÜ’v'5”ï¢9Ѷ‹Ÿ4m’˜I8öQ”UCbÞTÏï?ù¶âu30”*íÛüØX‰3D_ž¸ß²éÀ‰ó?›O&0_Žë,Ìn”>ц ÎØ£}•ÊÔp—DGb–Òg&‰‰|Ï€/—fËã/jÁ·lÖ.=¯½ÍŒåãb¨[¥‘1$-1s03ëæk;ÍÜ}õ½ðls‘j«[O¡'Ù -.ßaðÞ#‘°Ñ£“Úõ"$D±Ök±—Oî-çRõúÜ•S‘w¬†„ÌN™qJno;}Ö×ÂJ!ç¯|èGR€P—+3ÚÌš¦0³×¾~£ªƒˆA\p VlGþÿãí8ó)­CÖÇäùÑIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/sg.png0000644000175000017500000000061712233761324023305 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<!IDATx…‘AjAE÷tH”Y…lL¢`¼Ðó¸\zÏà&.$êJq«GH6 $ÒUSšé$„$¯‹¢ Þ Æ=¸Z ÞsQ謥Èb”8n¶Û¤ÓñË¥ìv6Ë$Ïy³ ÌZ ˆBÕŸ¦S É2Z¯y>w½Þy2±­–¹»§Åcéy äÅ{“f“2Š"i·Ï‡ƒÌfWƒA`~TRÏ—™* Zñ$Z­\·{Ñïû‡Ùëx\œNºŽ¨jWÛy 8 Øïýb`¦àK[¯Ku½%г!6†Êî:ÏmšÕûkíípè0¡øËŽ[œˆ$Àÿsø´ñ1_0ºGüÅ9òëû† \uAÉ—iLر åÞIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/pt.png0000644000175000017500000000071112233761324023312 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<[IDATxm‘±jTQ„çž½ÙÕHˆ°)L±‚…"b¥¾Vv)mì,ÄÊzKA|±¬ (ø‚è h¡M¬V7aÝu½ÿÌ~½ç(i2 ?·˜oæÂipXâŸ2ÐÂ_ÕÏ“Ýbé½iŸø«ÈÞ8.8\4Rü¿Ëýý @~Ûøµ±_S{®‡/‡ cÐÂ,Èf2) }wxö‡7|»Óð…s͸Åå]n>±’f@f !ÃÃ%­x굆-î?¶;͈‚EWê«Iô€Aît¶àze]:}tîR—6rê¸Ñ‡Ž©ü’Á³”õqfoúågÓ3ç×{Ÿ,lÑ£è×—" á3Ø,ÁØ“ah \_nZëÁÏ.¬:„Õ5¢pMºù€ö<`-TјºÄ=yˆ—¸ÌÿÉã7ÚÉ=.ζÃ@#ê:b*㊘¤×nþ/®Ñ°ÝòÖÉ”J®ú؉žÑˆ €ÌŽV_ñz6myh Ý^á8tûžÍøÊ2`eSYks±áÝÚ)°ü¡}åÑ…HRr8¡­-ìh˜2V«¼-¨£$dn—K†YgF³н¼¶ä°@IôÀ%"wC À”n~ÿù®j­‘®ÇOË;¸fqc †M¶>¢:»‹4T|ÃÄh4ßnw»¨k  ‘³“髨žD&¢>êtt³é÷ûÓÉä©9ÈË"C z ˜Êg‘Ì,’WV«^¯wo±x_×ÓýždÎ9Ü&¿iùwn?ùýë“™˜es=Fv ËÅKí×o×ÕÃûh4$üû'GŸДôÆUTvg/zÍ•…ÊİD@¤„i™\mŽ´ì/þ?ÇûDG, <ŽIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/fk.png0000644000175000017500000000107712233761321023272 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ÑIDATxU‘;hSQÇ¿ûèMko£E‰M¨,:¨(Di+â¨XAÁÁEGAq'q('÷.*RœŠR5…úС"Æ’6tPi5Jh}˜r“ÜÜó=ΑœIá7ü–?¿Ãùœåk7&:÷^¿ÿëž;‰à^ú~äæ®¥Sƒ¹üx `€­ @à åoMÝ>g·z‹e]¯S_¶'—™üHï‹ßP„Yˆ´AÖÈæÑø¨ÿúËSîM¿*@T‡¸e6¤Y{gâäqt`M9™áCàû %ª¥üÅû¹á‘»Ã°S>53^_T­•‚®Öoƒ K*¼|¬ƒ5Œ=kbô?œ¼p"Ýó`iK>Í¢ÍlÏá‘=••R-FD–„dzn¡Û£æj*`ÝÓOîn:ûf™þ¤|B.ÌÏÖuhQ1)'廃;¶ý,¿õÜ~B[ƒ«§]V­§ÍI“¨…RµÈ€àR¢Öq­2ûâÇêJ…kd L¢‘5“ ’FcH3‘\9¨^ÎÄlß=n~WàöÀþ…IÐ:*{¨/­î‡ !6§Š½` 1±ÉfBbaûªvª=ó©Û" _DÐ8o/Šÿ“°ÿ þ¾¿?Œô¬5˜IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/gu.png0000644000175000017500000000066312233761321023305 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<EIDATxeQ½JƒAÜû•€Mˆ †€­O A°Ó"…•Xú V6v‚‚`¬bc¡`a•^ðÄ`%¨üÞíîx{ßAe˜ývfÙásR£ÙSROŠ’fÔ¿¼Y·ë¢)!˜­ ‚¢$'Ç53Ä÷þ™ÆÕѽ¯Û¹½êAq¥á˜¨°Ý’Õ¬`¡ÍïÓ—íáâ~ûppuVÁ êI@,± LÌØøAý`øÜšóAMŠ)ƒ¤K¶ž£M+Ž·V;PúÈ,‹|•83XvkÀR0ãüª±¾Öß™ ,gpȹÓID±Éj;—¦ÓŸf½ßi_?Z>¸`j›Š ‡IR†-cœµ.w_*÷î®y”C§ï" ò$,ÕÍcÑ-OqSïFÑ2SXBu (ŠÝøßOåÏ#6Èüã–Hæw*«IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/af.png0000644000175000017500000000073112233761321023254 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<kIDATUÁ=NUQàuñ‚€?…’Š0JjK{œ†å›µ%# 3F•‰•FLŒ1v &/áݽÖÚçl‘Îïö÷÷çó9nIú}yÙ——» ñÏóM¼8nŒWWW³Ù @ë­·{ÈvÇ*{ÅîÒÓÝòÞµšØxòòd¼àüâ"íÌ,»¤¢J,²“îÖ÷í9Ûë;ÆÞ{k-mgZ*»€þì¸ZÖÛ÷õñƒ]“'™J"°$)3e‹”TdéÝžöÃÃ4IsÊ`c±ÈLë†É(©¯­æÁ¦VW*"£O9…É$ãu„mI¼Õ¥öóÇÒÖN¿w?Ͼ ‹…ÈPŠI#ªlG„$’=¢^½ŽÇ›å\ùr2U4#ÃÝFº$+¢¾ž­}úÜÉÑHÑ&µt3„ÉG"%‚8H9ØKÒÃ-ì>Øp:{bÿût Hà p¾À:þûEiS§l1IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/mg.png0000644000175000017500000000055012233761324023273 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<úIDATxu‘AJQ †3­P„Š]tÕ›^Èsx {¡Â…×kÁ ³°›&óÒyOALÃG ÿ—7ÐnGªefýj5ÍÿôMìú¾º{v;?}’¢æÀLį<ï÷Ehé2t<Ænj²3ÇÜm6ùBK_ ¬ƒÍ´\)‚™ý¤ãÇø{» ÔÏŠá´ó’ Å1aK†©Å=^Ú'ùtŸžåý‹Kd΢a$•Ã{¸“×K¾ÐÎ|‘²þ sÐGý¤&Ô{a2,&Ôš³¾]›šx9ph”«†ÀÔ Ã`Y‚Ûç-½å_:#B6'-¹¤o$°c\:vIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/cc.png0000644000175000017500000000104512233761321023252 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<·IDATÁ½K”Àñï=÷â™És¤ *"D5zR ýÒààV”KMm5 A›C4´4FA M½‰T4”™HžØååqž¿·ëóÉq1æŒÂ t(/nÞ›:¹Ûn”æ¾ö{„%îáæfá>Ö»e´ùèWùóNòüÖ|˜Î.?)žjÝ=³<ól¬Xî˜D+TÃ4tÅlíoûS#© Ñ!ÁnY/Œ7k=Y·«Å¼´²¸zóa­.®3CÿDäc#×Si†P •<]ퟮ®v+võÝpääÁdýw׿¤7Ƶ´} ¥…õžÉ´}i$77NBýÃVñízuGÂÕ4¬7§·¿¥}èãõâÑc¾°V’×ÛÉÀ^–I¼«Y·ÙñNˆºfªwŽowD6™]JÅUÔ^žÝXü“ —0 Ý=ð}ÓÙ¥Êpyo~bSºª®bª®çß z8P@075UWuk»–Ñé÷GöBÅDÜÔõÜ@ûÕVÉ‚†UûÕÍÂÍTÃ5ìzÚ§æ>QÙ»6–Ÿÿ~x±a@ŽI耀€€€€T¡üÌ«)¿¸å*sIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/sj.png0000644000175000017500000000067212233761324023311 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<LIDATxu‘±JA†÷nÏÆB¢Eb"¢…XÚ¾„…v¢…b'>‚`ca+„<…PbgŒ ¢EX6îÌì8?œB‡áÛ0üvþÛìÅ•5§:¹ùðuµ<ð>9gí@4±°iõ䨍ªgÛ,Ëj‡*ì˜MJ`2=µ;f€8½¾ÙñØl<˜Â‘‰HÑ1Ũ‘|«UÞàÄT‚3%¸9â_#¤Ö°E0'b34El èà2h庭•É–F£ÌoÜïÌ~’¤Ø9%³‘€ÄÆD‚¹MÕ‰‹½n&‚eÔÊéÑåûéV]ÿ©<ÏCEßûéý]î?WÚµ®¯¥ˆÄq©ŒA\,.ôº·…ÅDD)î5¦o(Ø'~$Ç‚Ð00çul23…æ›­\LÇŽAÏ µè\Öû}Âùª+7ÃûÕÇZ “±gv`Y?ôžZ’×UŽÉIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/tk.png0000644000175000017500000000107712233761324023313 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ÑIDATÁMHÓqÀñïþ¬Imš" _2ß!‰Í :FP^¤C·.ÝÂ:EÐ1$¢:^ºBÒ¡ 4ˆ^©¨Œ&Ó’XF5Fêòmºô÷<¿ç×ç#ù FØëà 8PPP Ηoµf!63Ý3½su©å`Z*§>~é|Ý¿´ºKÔDãÛ/âD… zu¸eôn!]S~9Óª¼i_ësý7wgâh±TÓÜXa˜Þ‡­MéF~øÌáч§kã¥Úª¥ÆÝ…?kÉŽ¦|¦kÚ©‰h„7¿-Z‘ã‡^õìÍ»’¹Ðqslèú½S3?š¼ú‰©ƒ=m_3QAE5ˆZW.™Ú8;8v~䳓 âŸ|èUÕ®%ýÓ‰©ÐÔ[Pµ_ uÎY{zþHÏ”“°-7e¼\šO¿Î7;ñ"4&œXî{óÎٵʎ“ýOû÷½ÿ½XwíñÀrqOM÷ûÅ„ŠyÀ"PUµw³ÝWwšêd6³R©J&×/žxà* ñš› ꋃŠZC:!®þYvpÛ:Ö—­¯^ & «Õ‹íÓËõ­ ÕÞ‚÷ƒqp   l@ j! ¢ÿö[%gzkwIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ma.png0000644000175000017500000000052212233761324023264 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<äIDATx}Q±JDAË;EîNx­`ccáÇÝ_Ýgˆ–‚vÚ[Ü!N²;Îîpì6:„æ%¼,³8ÆÔYÿØïƒ¼VJq¹ÉIŸøx8\¢ûÇgXN&'Ü‚ÍÍB/ëZðê˜ÝfUjÚ¬»™-Ðj…[½ƒùí|¾cïíêÇœ#`ƒMÈ÷k;mí¸µ×õìNHçJý‰Nƒyóf_Î"»}¡OXF¥¾‚”6´‡'†¨îì¬ \HYqèblD¨ d`Ca·sö­riZH”’huNó!ÿ½qÎ/ùËZÀ¶šMIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/li.png0000644000175000017500000000067412233761324023303 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<NIDATxeŒAªSADëuZ?_ùA¿‰ˆ!CwàwáÝ„‡âH2 êÀÄ€ÄAœ(J’®º·}ÝAœ>ô…ªj0|Ê !u8ÌURu!¶~ütvóüç­kßÿ:Z~­7çR–gÉeÞšõóòÉ<Öí|2?‰û to¸÷Ï}|H:Í)£¼@»18Tâž±ø4½|qwÒÛËôêÌ좖ä‰VK¤ôæíçé›åDæ»@!™Ñ " ´¦X8€ïüYÜÞõ¯lKÙd&š$¹h,_3ªuËàÒÕ×xßmŸŸýêãÇ:[ÊT&3Ó±]ì…ñlã85ªK+9Y¬ÖtÕtërªgÚ@V.Ñn¬®v®”‚›3¢×B3¸DÈœlŒ­ƒä"¤,¹—4j¡YüŸñÿy€¿}ûaqÎóIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ng.png0000644000175000017500000000060612233761324023276 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATxu1N‚A„ç&’Hh !ö€Úx++{K¯Á%86$LÈî{óœ]¢!¢Ãd“}o¾þÏÀE ›»M¿Ó' @çî°›>Mau›€ ýöXÜ,Žk‡ƒa·u „ ›»óÛ¹!gZö¼|YDë×Ï7§K¢ÐŠi¸~_'¦Ì<îAÅ ²,LögJž àYFªï;ÜŒſÒ$Èj+`0ºhó à¬ÁjKV¯okªÑ¿)NtÑTéì)qòÑ j¥€Ñœß 5šþ³Á„½dÚèj¤´™7M œUíV{r=ñðb €À R^=®If¶Ýog÷3”[ÍôðÓ|v ´àlIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/hr.png0000644000175000017500000000065612233761321023305 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<@IDATxuQ±JAÜ»\´±Ä.(‚?#¶6iÄ`“Ø$‚ ¤‹ $!©µ°æRØÄ?°X©é%Z˜Ý÷Þ8¬ÉiãìcnvÞ [\÷ û«ÿ™ÌÍ& f ?i ƒ©@- > "Xòçp x›:Uݳƒ®lAž!ÛÖ??Bððž~R*-^€!OÕöÝ Z-Üœ¢Óa^ðá§àB0L5I’ø Oð˜LÐh ÓA­f£QšeˆpŒÍf™‹@ÄBÔëèv™F¯gÑÏ f–åi¸x¦«Uôû¨T0ç…0 åÇ«Ãéû<(D-¨}¼NÞ3½¿w±rûBGÌDQZ_½¯=dÎ ïtóBas·|< (òÊp58g,˜6ÖŠL+׿È\G ²Æ´‘—¹¼~r_BÁ2™z!8µæ?Ú}¢ðX¾ÑÈóRIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/id.png0000644000175000017500000000054012233761321023260 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<òIDATx}1NÄ@ E=I v)(à*Hœ†’sÐqJîƒ8%tÑ®Ecÿ?ØV‚•vÿ8Öü~œ)oëQ¶‘=*d;Ï?~’ç÷>n¤ hðnBk šyiÓ0¯O“Œâ²w 1î¥Cª Z[­ãåUn€4°ÓLTœ0 ¯F­á«z/fæøý…Ïm3Èï÷­Ô€¢«*=pzV=°º»=¹¾Áfÿè0–Æò}90®Ö/Ï@ÜØ%yk†yž'’¥”àåݧf6<ŽîÅbƒïêÙÉwÊ?ùkLIF`YvIž’ÔÿbvîÛáɨIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/gq.png0000644000175000017500000000070212233761321023273 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<TIDATxe‘±ªSAE÷ÌL÷Ðw!…˜"½AÑR´ò+ÿÅJB°ñ#ò¦°±0ÊB‚5‚Q‰!&3çìãŒæJÔ}‹Ías›qõ£Ù=üi|Hl<.=¾ýé34fÔT¨Ja&%ýeJÒ4z: @8®N'ßæšCM–T‹“î‰3¹tOºØ áкS?»wY`åËñ›çfÔ£[ÙVN%ιåͥϝnCp{†Óé`òªBU!7´}ÛGÁV¡f×þeWܵ>®Û?HzüH&jnìïóÅ¢ŽÏù£·ï?üµ7#TØòîü)/@™ÊõâÙYE*Ù©k¦d¤eí}\¯<ý.Þ}òpþ}¥¢Œ1 ’™ív¹gL•­^ïÅx°–“oB§Ãº®DËBË:¯j"²XÕ_ýûW_ÿ÷Äl|Xð¥©C&Ïg—ÚIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/pn.png0000644000175000017500000000112712233761324023306 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<éIDATxM‘MOa…ï;3°–"%ŦÀÂ`”ˆ ‰†XѕƉnˆ Ù™nüÆ•épg7&®Ô„¤J””ò¡¥@-H*1LÅÖ±¤ØN;÷Þw¤h"ɹOžÅ]#îŒÏŇ?NäÇ¢û”¸ÖxƒLL_¿™5S/êí±%âÆ½ï&‚§Ãv~Ã9êµÖì®H'$¿úËæÎJa XÖ]‡Þ…D¤ð6ž|S=ÈÛ$QÝÚ‡¨êÅî.4øJúùÈÂTºmJÒ Z1&Óß5ì5z ŠÄzkhÉ+áªLÉië|•ªwèøþNßVÝ–IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/tp.png0000644000175000017500000000133712233761324023317 0ustar mathieumathieu‰PNG  IHDR XÌŽàPLTEÿÿÿ—7<‹€zjmF=A¢ž ¬ª«E@CÕÔÕ|z~;¥<¦;¥=§@©?¦ A§ C­ F¯ D¬J²Q¸N®U»!Z¿T´+bÆ/fÊ5kÍ8jÃ>sÔBw×F{ÙM€ÜIxÎOÝPƒÝP€ØQ‚ÚEn·\ƒÈ+X¥—©Æ”¥Á™ªÆ¤µÐŠ˜®²ÂÝÁÑëÍÜôÄÒéÌÜô³ÁÖ½¿¾öù÷åèætrtxv v gf } ~‚Šp!‹!„i"s#!n!/š/(y(5œ5*}*.‚.0†08˜86‘74Š4B©B5†5FªFB›BF¡FFŸGO±OP¯PP®PN©N?‚?Y®YN•NU Uhºhh´hn½nÕØÕúüúóõó­¯­êëêÓÔÓ%$6Ž5G‹FZ£YÙÛØÉÊÈÒ_ºk>ŽŒ‹@ ’D0za[‰-¶‹‚:54¤UH³xm©uko>7_XW®SNÍe`ÐspyOZÛqpcZZC==”TPPsoo‹‹´²²°¯¯þþþüüüúúúùùùöööòòòîîîêêêåååäääáááØØØÖÖÖÒÒÒÐÐÐÎÎÎÌÌÌÊÊÊ zxºIDATxeÈ9JCQàÿ W qÁ¡p‚+µ°RØY(âFl\‚ ©Ò(h#ØX†‰¼{Ï`¬ó•–Î6GçýìèÂ;ckv<¼I«MT Š4âjô?,Â[‰{#"& â±bÐéüör;<ÌRµŒ£ëõ;§Œt?9U®2£ûáòt˜“#>> >^Þ>÷¿ú½ÄîÚoÙ˜(¦]5yÕ6(\§ö`Ì›sᲪÔv<=° ÞyRÚyã@IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/bt.png0000644000175000017500000000101412233761321023266 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<žIDAT(SmÊ¿oÌqÇñç÷{Ÿ»öÒö‚ÜÅ”F%ÂÀà`²  é “00u¢ X» i„É ƒ‹¤9‰4½ë]¯ç¾ý|ÞŸ÷Ë bñÈs|“·ÃùËq#4ð¯ðˆƒ7ð€? #¿GŽg‘ÁÔXT´?«°L*¢éUÚyº<Rü2ž¥Y;o©ª«qÙ»6êÆÎê—Ú±Ã^§„þÝž¢¶?£˜rÝcÑ^ÞZûY쉚Jž(qðŒ›”©Œ¿FåÆä_Çñýó•ï›[Ë·´•pP–’d¦*ugV‰“Z]¡¦Sç¯B9÷è’š‰dÁ Éä¦"R³ÞÞë>©ö7¹JýIs.mØË›Dͤ"'‡ÒyR-Nf/¬‡»ýÍv3o§^·uïâ‡gã¹ùþÙ;%̔͠ô5ÓôÉþðôô·íŇWŠéæðÍc±«O+íÛgŽÜ?§v”%yB9‹JÓ»ÞÁõe¦²ŽÎ·¾¾¨7bq`2Ñ2ÜP&g<;£'°„ïâ<‚ácœÿôÇo…!#êÿ/.¢IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/cn.png0000644000175000017500000000061612233761321023270 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe< IDATx]‘?JQÆ'ÉFI±JL‘B¼€9‚Ç0‡°ÔÂëXˆÄ6– âô)TqcbÞügvžòð1 ó~ß·ÃÛÎ3€´Õ?Ã#x½uC?TèÊÔîùY} Í…ô÷d{ÂÃ73‚DJ¤ˆÒöÐOó¹ê©övõ”ßOYV¸uÈý\^£sÉz’”LWã1Å"ËK•†¿n˜¿±S³RâG[nc=¢*_÷ƒßN”ªöq}ë;”"[[Zà fØpìº~$`3sÈ*R!Ç; ʤ¦1ñŠ>¯PàyH¥ €·Í²¸øÞëÝ=>ªªjÆÍËËF<ËË\.gÅØ‚Á˜üÞ_™Œ T•«TV—–‚±X·Ûí÷ûƒÁÀ»»KF#’J ¤M£¿9‡ƒ)P'¤T‚Ïí-)ét:ívÛ úxžŒÇä>É„@§ëðüH;q:ÅP¨Õj5›ÍË‹ËãcÆ$S& €uæ2¦!ÑårKR£Ñ¨×ëNïiäüŒ1ñ80þµ¤c³&64-àvï‹b­V«V+›‚pð3&ãþ,!æ’&`ÒÉ$}{½ÛÏ›¹Ö\r(DÅI6‹'€Õl ™$‘eÊD}¾už/•ËÅbqegçáê fgAQ`AææL—:`Fr…ÌÌÜ„Ãn¿ŸÖCí’¤°(‚À€ïÛÄt0j>oìí Žh”E‘eY}}ýÁžBfáDÿ\IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/nl.png0000644000175000017500000000055012233761324023301 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<úIDATxuŽAJCADkdDÉJBõžÀc¹ +·.=ƒ{ïòÑE@ùb@fº«íéßl~Mñ(˜šžN†q?O8¬7#A…ª ¡b¢±Ú‚Õ:ðûé1£IìõªPzZájÅY¬Tg:?%±¼¶³ Í[[$~pK8B ûÕjÙVêû~±X´•ÌgJ)¥®ë2ÉÖE˜R‘̱„8ÓJ11áêþöîæe»«BQѪ¬NIqª^®æÏ›‡Œ·¯Ï]Ùö?í®=`©ÞS#E(ä|v|d”Ö;9ž “DYÞƒ*4U*©:¬„5PÂ2†!ï‘<øÙ$jsý GWIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/mz.png0000644000175000017500000000074212233761324023321 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<tIDATxM޽jTAGÏ5³qÝhB„+\5ÄB±öÁ* ÆZ+µ‚I'‚(ZA+‹`wAüx»¤‰>@‚Å„uÿÇ8³xÁ?gÎ^äþu8 cpÐÎÿ;½M–n­´ø1çÝ’©›¹jRõŒˆMì*&íz€3ô¼±óú’}]017Éë…Ñc´˜£™i yš­ìöG»¶v·WŸN“óäÝxY÷ÂöÉí0‚o[¸ª¿ßh½údKÂK‘]QÉcÌÎYFšSMû© êËÕêÆ‰G˿ҳŸçd)Æ5)óý›²ƒƒÆðö=¾1ÚûÐïïÙë­+Q R¢*Öì)Ñi ‡;:J+;õŒúó‡ç掽pgòëL~[î©Þ‘ï[ïÀPÓ”pE˜~0»“g¤ó$’¬:¼¸¸»Í+7ëÔc#I¦ÊFA¨´€‘Œ?æC‚Ï3>ûÊ÷ñϸ‚â^ÂcŽ®3€BŸ¿vlJ#é }³IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/bm.png0000644000175000017500000000105012233761321023257 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ºIDAT(Se‘»kSF¿{sMn±Ó‡&жÒU'‡:X”‚ ˆhǪC†‚èPª¸ù/HÁA‘Š”:ø\D%¬¨¡!U) ¤6¹¿§CšÉå›Î·œ”¯ÞxÍÝýv;÷9 qk=_,4/ßßx8`€(.>¸Àùö÷Š7›A_ÿ®Ü«åúÑò£PؘMĘ]Ä™?,,D÷ì)*c=ߦÞjE{v·$8¶ÕLª+ÆìÄÊdD`N DÏz\98–þû«µò3Èez†óõêúÝ;B_œi¨TB*åîž$«ÓÓDkãç)š úBò¯[#ã£ûêåšLNÉ͵Œ˜ßéOœY€èúâµß¹Ù ò'›Ýtáö»åêpnbg£Î‰¹êûâ©Ë—¦lrRE^‡ff¨VS&c³1)±9óËù‰Í†ªÄq|föÓ›¥¥0œY‰ŒÅ‰”H2"cV¢SO2™8Ç'Ï>v":âŒÙ™¶éíe>}®äÂmQSEçà,;ÙD½ãžÙ»úMÄUcUW% xP7¤tÓ @ÿ5 ü6›Iœb©Æ;IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/cf.png0000644000175000017500000000077512233761321023266 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATMÁ?HUðï¾{íõ*zÞÁâ) iÒAk5ÔêP­ÕäàÐ?—·:D“--áäìÐ’<]³%zM!(hD›ñnƒçœï|%ôûËÛe·~½Ô»õô;ZðL6øù©G`üÂÆAX‚„%,ª²;¾½¶>5µ´weíÕû‡Lè'Þ>VÄók^ŠS¢rùÉ×*‰Íáüγ—od¡t$¥¹»˜Ay(˜:[hPìïÿ˜œœ ñGQG¤¹9™ksCÿdª(Šáðc8€²„$‚Ž˜É\ÿ`4U ï¯.Pd’­dÆ}3¹¯~Yd)FFÝ®ûƒ~5ØÌžŸÝmv--žî´{æ2[ù°b4§[šÓ§»ÓÍzS!àr£E†Ó,Ýh2—»Ñœn4¯<,ÇPõçqw&~¹§<Ó K™Ìeöâ†3=i)OñÔ—¡º}—êz’”\rœsDÜì¹RHðÌu[[hµÐé ÝÆÉÓ‘ Î ü ™ ‘‰¿~’±\ ^jÈIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/mh.png0000644000175000017500000000107312233761324023275 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ÍIDAT(SeŒ?hSQÅÏ{ï&i´¡mb‹´¶¤jAj)‘ªuÉ`…:õ Ý\ÅEp*Îâââ¤N:ˆ:J…ÒXŒ™J ±CH%j)&64š¼¼{¿ï»J)xøqø-ç8ˆÞÅ~„ –€}ô– x¥,>¼:6Ü‹†V×·ù†Ù’³‰!Ú ©¾]ë\ë¿àhüÐÔÅkQ(Õ>•2 ±CÒ2^”³+ÓùБc9(@"a€ã öþ¾2Û–q´A*T¸Ù•ŒíÙ¡´\ë4•¾7^d6»cá\aÇk²mã%ì™Ãï¦â%;‚`ca+„<…PbgŒ ¢EX6îÌì8?œB‡áÛ0üvþÛìÅ•5§:¹ùðuµ<ð>9gí@4±°iõ䨍ªgÛ,Ëj‡*ì˜MJ`2=µ;f€8½¾ÙñØl<˜Â‘‰HÑ1Ũ‘|«UÞàÄT‚3%¸9â_#¤Ö°E0'b34El èà2h庭•É–F£ÌoÜïÌ~’¤Ø9%³‘€ÄÆD‚¹MÕ‰‹½n&‚eÔÊéÑåûéV]ÿ©<ÏCEßûéý]î?WÚµ®¯¥ˆÄq©ŒA\,.ôº·…ÅDD)î5¦o(Ø'~$Ç‚Ð00çul23…æ›­\LÇŽAÏ µè\Öû}Âùª+7ÃûÕÇZ “±gv`Y?ôžZ’×UŽÉIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/fm.png0000644000175000017500000000071612233761321023273 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<`IDATÁ¿nˆÅáS¾¦M«Dš4’šŒ,%F»Y$fq .Àä* q:h Õ„%B›þ‘Ÿ÷{Ïïxž™›×%I’j¨¦›¢«¨¦ªÇêê W’ܺ$‰( ‰¥ùÙ ¿þÙ&vî?Þ$I:ø=‘@ ãäÛ×–“ÃØÀñ¶è Õ˲Ì/ÑÀkì–èÕŒÆ@­1s8I%ç·±çi.Á$˜Aw\r]W*ºX Y•!¸Ñ¬ˆH5潄–*ÖÃ,Í—¹¡™ÈÇ5ŽLz΢åнÀ9„†ACN¨Hï —P°›Ix|\u–ùû”ÛhVÖçÈpaÇ·ßçÖlo¸4{yÜÌÌuŽÐÐZ{ýã—¸ù7+7‘ÿze–¡ IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/fo.png0000644000175000017500000000065312233761321023275 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<=IDATxm?JQÆß²Ol²)Ân ’Ä?<………ÞÀÂ; ñOm§­žÀÂxÛ²(² Ù(¤HcffgœÍK ’üX>f¾ývöÍóƒ™Ô»¯ýFc1îwË̬Ï`Õ- ª"rz…éÑa)*‹Ú:sšN§cÝl÷º}%C”yxžçþ0N£>3e@FæáNhƒj÷ä"l÷2" ‹AÀLvŽ¿‰‘IV*öáêÍ‹‰Îšô™HF¢6iòæç¸b¡¾Öº}²þËA©œ ²<|ÝÞÛ]ºͦñl§ëeûlZ¶ÿS ‚Àq»Ù€!ðãe8»€.ý¾¿jÝ}; PAu3‚ˆò\¯ºúþoµù:ÌüC[Wišò„Z-¹7›[æ.Ž«<…a&Õx0_惒³µIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/hk.png0000644000175000017500000000067612233761321023300 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<PIDAT(SU‘±.„qÄçûßG|"¢PÐêJ:Bç $<…ÂSˆâ”/¡ârDHDøŽ°³»£¸#l&“-&™Ýüªg 1žüñ¿r€  v {p™ÊT<Ž‘"åþëƒ^¯. ¼»W„"@*¢»¹¥™é·““4Š&3‘ee@€Ô8QJ)Žvw´¶6µ¸X¤ÙH"¨P„Üá^UUsx¨—ÝÜjªéÍ<<¼ïíÙp8:/€Ò ¤Üó§Áá.šè¯Çdz€66”©é¦==eÛŽ ( €”™èi69?¯õu™éòBM3ÑíŽÒrÏ߸‹LRä×ãcµ¿ÿÙï[ÛÎ]] ™Á™%"G’^-/Rr~’¹´ÔYX>=Õ««pψ¡ª>`ÿ¹þ]ü?ûIàò‹=æ4ñÈ­IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/np.png0000644000175000017500000000053712233761324023312 0ustar mathieumathieu‰PNG  IHDR ­Y§&IDATxmÎ?KzQÇñãòûù§LDÌ? …(R`á$D¸ áä3È%ZD°ÅG4ô—‚h¬¡p „Ôº(\¤@¸j¾;ÝAÞpøž×ð;¡ÊÄ}ûë‹»¡gúBÐ1&ÞHå{!ŠèI4TÕêľ̡íÍã~­Ñ@«Õ¶Û¸7nÆ3(¸æ«\fÔí2RUBð*sùòLQÐɇ<Öe[‰;¼‘+V½yž ìî3tðœò.A¯XD-°¯Ÿ3·Éç:AÍåÐZ-´f“f2‰Õ™a¹×ât²Y´z]®d2Ü ÅvÄ91^äQI§ùL¥x’ïGYIf\>@Gû1f[óJ“õPÿ0.íóß"3ïñÏãßò]ÝÃIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/cg.png0000644000175000017500000000065612233761321023265 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<@IDATxe‘=JQ…ÏÈFH"11*X¸{+›ˆ…Z¥K%’ÖVˆ…ˆ…+p B µ°Ö ètFMÞý¹Þ÷&£‚—Ãá}çÌyžÆïhùè®øZi+Õq›ž!÷ƒÁÚ ‘ª¦bÂÎÀ½Î+dÆfÉoitw#Ž½Ò›£¢BFîN.Ñú,©:¢†” W˜IÝ‹Kš-´hc®@'ѯ‚#R ‡"ÑÌÆî¢Ô_¤NÕé²û†ì4Ø„@„"À»võ[´Uu® Ü“Çzøyù†ˆ ûMÞ®ÅÉÈŽƒ}…È~Vòú ¡×ä½z‰º;}l4¥‘Vf¤ßÊÂÝuçÿìý˜èw¯J&‡ ’¾! SãÝú²Ó€„gÊ.mF#G‰R ÛyÁågez‘éšuŠÿšÎ7ªfvËY,åIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/gh.png0000644000175000017500000000060412233761321023263 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATxuŽ1J«Q…Ïÿ^Š)^B^óvàÜ`#±LçlR¹­„Äu¸]€ÐÌœ™ãÜ\Ĥpø8 sÏw¾'÷÷Ø Ëe…2QDˆ Hr×^nÖëÚHÏ/U-äÞ³#«4™Õ>Ìf 4A©ƒ¶™È^m˜wîMÈÀ0@‰ß¼ûÝ­›û|nã?&¹Ôƒã ýK±»r§ùêÞÖ+ß~ø [\öv˜‰_$6ÐììÔþMm6Ý^œ›´•¬y £ß׸:ñ§WcÒÃ,ÜÒüØ=üèÁ*-Z2ùÿ/o0Á¨ª{z.jÿÊ:Ó™QÀJ0xr2žT»]»Ùl¤5Š(!1`ÀÊ=XîE¢æ†2eeÕ¨IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/om.png0000644000175000017500000000061012233761324023300 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDAT(Su=JC„çŧ‚øÓ ‚ˆÀVÐcx=ƒ¤NçilÓÆÀÜÀ&E,MÁÙY‹ÿP¿bf–e› ~pö²lý¢p¹\¾Îf;ççÏ£ÑÁÁ^€ªOûÆb±häjµ{qñöôóùŸ½Ž¦i$õl.Çã­ÁÀäíÛÍ8ßæó’ŠJ±H“Ã&+Âäv¿ÿ0¶JYdI¦ "$ÈŠ¨N» hTª$3LõÈb ØD4\ku™ì­HGXªˆ›[F“ô:„ƒ¦R'ûz¼C À’I“EFÆW/I:dÊ©LxýA›GGEZy¼CšLÊ¢)K¥ÌLg"!4÷€\_x øcìÖÀ;¼ìyxzÁ’¸IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ws.png0000644000175000017500000000062212233761324023321 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<$IDATxuŽÏJaÅϨ¹h%ÔÆ…I½@ n¢§pÓ®·hç‹Ô¦ÞÁeBÄD«H3Â6aãýó}]ç&ŠÔåÌYÌ9¿ûݰŀæžM1 ÀŠ @»}´½³ÙlÖ//Z¯÷:UBQ® ÌQ$Îý«Ó1À&Ö·6Nޝˆ´RYOÓ§2O™5ð0G¦Hdí¤VóBèv'“¬ÕÚMÓgK!¬š·Ù0ÿª…Ñèýàpïãó»ßÛ®„ Ðù’deÎnÏ·5Q¬‹¶"ÁÅô&ÊKX,X>cÙ?ɾ$ÿ‘åx¥=KEÄ¢ˆŸèñ˜ P…T«ù…ÌÈ$_ w“ª+8š»`þ|~~†Zayð*ÆIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/za.png0000644000175000017500000000110012233761324023272 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ÒIDAT(Su‘OH“q‡?Û~›ÛûZ¢±,¢.&ý§¤À(!Â.Š(¼t’êR†YP1ªSQÇNBBè”±ÁêP‹´yÈS@ªjHëuØny½¢vìÌ̳߰jèûÏý¾Ñóùùtâå‚:–:“ªn$A2V+OI°X0•S«Ù'/p-×;-¾g‹|´cÇ|ÖZM¶ùoIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/lc.png0000644000175000017500000000076312233761324023274 0ustar mathieumathieu‰PNG  IHDR ù€šntEXtSoftwareAdobe ImageReadyqÉe<•IDATÁ=k“aàûy’Ô˜ZÁŠˆƒ¶ kÑE\ŠsݤƒàPÝý.E\¬q(88 ê"ø„B0yóñæ}Î9÷íu¥{›jšZ- Õ<•P·C74ΜjL½ŽÚ£IºsCI`h<ÆÅËÒïì-Ë] "¨7&í¥6 +ÒA¥Ã:m—Ñô{tle"s†ƒ¡Õ“ P@ˆŽp„4›¥Í~þúþÕàõ“­Û­yÅp¸Ã‰0AÊ”$„#(Óš]|Ü >ovT-R¸ÌULAÈæˆPP” uÏ¥¿l\Jmeô³9²†Å²"7Ê$(P2W3×ú•üé廽ûåùÃæíÞ‹ó×Rc )wÊá ª˜ÂPg~³ GŸ^ºU6nÚöégÃ/>u‘2CP³Qa"åQ“¶zew§Öߢ?̓»åꩪr˜+B¤´g5œ:qµi}ýµ]ÍÏ&3À±l×WwÎìgK-‰@©ÿh6œ¢¹Hf@†à@‚€D0¡Åÿ5€U¸ìVIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/kn.png0000644000175000017500000000102112233761323023271 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<£IDATxmŽ_„”aÆŸošÙ>v*ÆÆѶQQD%m²t1E¬ÒŠLô§Ôª.ÛŠh®"–UiMºË\¬$[ÚÚîkX‘3­5µ,Å:Ïyß·óŽÙ»}üœ«ßó8 Æ€%tâ]¾†Ä›ìÄD¥Ó%A£ƒ£QÞpÁ©wΫ%MõÔN=ÓF“ó”d­VË" 4þ5MuÞÑÓ9GǽZÍÇ·üÝr¥Tº” ¾-›>]3ÝÖMÕ¸Ms3]2²U_óÁÙ½ïDww¾xtÏ‘½ß·­ââ¡ö¾ƒÙªN-ýëyr ŸÜçì7’ò÷Íó\ò{ø@uíC†VP¨w"§W¶k~Žcwäç-=ëäúUîO«¸ a‘èS ›ÞXÐ3™}{xòåd³%"ìí‘G·Y˜‘0Î È„l2ÚÌì/©¿,n-`iêEšrb„É ó¿V+<ÀtE¿|&ýôÁâÌûjù¦ôe8½ˆ”Pç$._<§Ê´‹ÙŒ»w–¹Ä+Ú^`¼SÛ´êõË9¶ •<ð+ÒÉS- ©^”IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/tz.png0000644000175000017500000000106712233761324023331 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ÉIDAT5ÁKl pðo׿jºn‰­TÍ„zÍBx„„ÅL‰¤–3–jH¼—%h\\H8X<ï.MšÄAH< .\eJWk8ÔÒþ^Mðùphà0@æ€(ŽbD°{9Ô1±w€y3oêULÕ¤%“ƒ‹8æäÑcN§…™ …‚ƒà¿þ.«W5eceEöñ– .qî&ÕjÄ̆zw܇ƒÁÌ«©xee]£±åÒ1Ç÷&éÙsj69ÔFÙ,ï9ù€BÅ‹°X›¤ûy •iÎ]åÙYjY¿–OGÚ{¾ù±ùä•1å&/Y ÙUÒQç'©8ÅÓh†÷ Çš˜—w¡ÒÜŽú/‡Ô$µFöwÒÏïr1Ï•"âäR:3\Ù-Nï¼öö2ìô sXŒÜ:î ÑÝ;Rœ"b¢Ìaî®jâü«Ñ×ÕMˆBÍCÄ}‚–eä:W«Üï¦s—,ÞßóâÛ¶É™2ÅØ¼˜ƒ pWc씄ÉD‚wmÕÔ‘öPXo½?[ªmˆDüŠù^Aº@1ˆ b0ƒQüuä) £VIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/mc.png0000644000175000017500000000046512233761324023274 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ÇIDATxO[n„0óPö|®ÄI÷V{ƒ=h%$~ûEœ™:$Ýõ¡uËÃØ ±@‡Ÿôï5B¸ÝDánîÈ9˜‘iä9¤d|óçý®€ñþ!«Jo+·ÚÅ{ì»´ÍsÛ'·Ædµª$j)•€“›” IüóÛ=p¹`žc#;2û7Ñ׫?¶mÛ4M!à8c†eYFw¯=ðŸ»Ne.5¯’mÃ3Saf8Am›–Àº®<à~‹†CøùS cp`ºÓñSJ)dôöÌf¦þSÕ¬PéÝÞ·K|uß½½­Ù©&Ê Š» ¬ž•Ï*#epã–¬Ü øÒÍî¯ÇW'£€½%o¨ñ‰‡óKFr¦°Ùà4Óܘì}½½ESÉ.{”ñjþÐÙúúxïÌÌÖ®ë«ÆÊåßÕÝf0»zxb‡ÏÁ ]^\z ÿák}[åÓÊIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/sn.png0000644000175000017500000000063012233761324023307 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<*IDATxU1jVQ„çþD°!éRÙiggaç,K—ʸ!±,D+ÁƨxfæŒÞw£?9|ÞùÞÀxý4ø»Ý ½ú=ל==Ð鿌û hüÒAkwƒy®ÑÜççSòùÇÇn#ÄpÂ\çÜÍ|¨T…ÇdzakÛŠÕ ŒT"‡c†Jq /Êd©•ð‚|û‘¿Íg'uûàŠ€%¨MS=„ï¿Õ»OüNÞ»UOîn×K¶ÁÛiuÉJøðN=:äϪLJLïy)0,—ZtDêÕ):•æÿßGÒdÑd“fRH%3Œ¹7A„ S(°utóˆ¦Ö³‚c@ áD° ¼jûZ“¯o û…~€ÆdÍþ,[‘“¥I±IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/cy.png0000644000175000017500000000057512233761321023307 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATxuÏÁJÃ@àÙkM͢ƛ‚O Þ=zñ$ôêÉgÑ'ð%|/^O‚ÇRŒ9$¦MBh Òým&dÙRüB2a™Yæyž“A)þè²Â^p‡ˆã èbˆ¢È&ft¯ö)€!”RÖr·¢rŒ*Dp‹yŸw|Þàã¨Á𕍀Šg|Ý¡šâw‚ôýuÈ!v/«½´®k»ÍF›GX«€= ·­Sì\¡C¼R3Ð`NOÖʼnWÊÁñx6y%ÃmhB¯ÖfÊâ%žÊ·Q<ò{èè¨"Ë2×uÍÅÂïð!x¥ûd7nuí¤zh8Ér›A‘…ì¬%¤n¥B+r^”çón+Ô’%U¡ò3ñ—íƒ*ˆP Uh®„ÉÀ-ØÝkþd’@"©IÚGD¥i ”5¶q 쬽˜<à¨vµ¾žNâÙn%IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/cd.png0000644000175000017500000000077612233761321023265 0ustar mathieumathieu‰PNG  IHDR ù€šntEXtSoftwareAdobe ImageReadyqÉe< IDATxuÎ;hQÅñÿÜuQ7Z‘T«âC|°Xk7îb£ø°Q±µÅJ£iµJ£°ˆEgUâ\YtEEÁ"•`åÆg2{Ÿw2•…‡3Ãåòãpƒâ{öïšîtÄaRÿiŒA§8ýbËHiSšBD;Z¹üxûúèû¡€L‹uâìòAŽo¼¿wå #qUÍ~ûJIb‘m"ë|,M7¾Hý“žø°T{·ØþuSìì[ý‡òk¤ºµø'ÅrÉëž\¨¶G>ö'ºÉ«ßS"M(/zÊPÖ‹»[¡øF^ÛÈ?‰›~xæç½œ¦”cÊÂÚŒž¬øËvoŠëÏBÛçÎܸ3:MƒæÎ £Æv”A•P œàv2Û;;® 0s¡Ó¦6l0ZŽÒ¨¨pz€[ÉÓùs“­š8»\ÊX‘úfšE …L“Óç ç¯=Ê(¹öܾ ØÃ€)ÿI¨êp06ŸÓ»í£À†UH6ìÄ©l[ü? x á ®ž¹2Ó'Iqí0}°XGž¿x™ù1©IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/nc.png0000644000175000017500000000064312233761324023273 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<5IDATxm‘1ªTAE»ßƒœDAžf.@pFÆ‚11114cÝÓlAÌŒœytWݺõoÿæÃþ .Õô9]™Ã§Ÿçr‚ߟ"¢÷®Pk}õî /½@@)qÞ¾P'“Ìm{’™:ªIª}ýžpš¥û¿Ï_$è²üß=b×ëUФõ¼öœþþ¡õ´^ž>ÃØÀñ¶è Õ˲Ì/ÑÀkì–èÕŒÆ@­1s8I%ç·±çi.Á$˜Aw\r]W*ºX Y•!¸Ñ¬ˆH5潄–*ÖÃ,Í—¹¡™ÈÇ5ŽLz΢åнÀ9„†ACN¨Hï —P°›Ix|\u–ùû”ÛhVÖçÈpaÇ·ßçÖlo¸4{yÜÌÌuŽÐÐZ{ýã—¸ù7+7‘ÿze–¡ IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/tr.png0000644000175000017500000000063712233761324023323 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<1IDATx}‘=nA …=º$¨(( 5%tÑq@¸=PP **J$DÇ'àGJv<ûb¯‘²MbyeÞg¿Ùq ßˆÓõ™£…€8&I)8P`03¼Gê÷¾ÙdIÂ9\."Uu§#¶[\¯ª‹<|„(’ÚU*²Amê~ŸšMÕÕjU§joy/@FŽªecµJí6¦S X¯ñx`±Àë›ò#I|}k÷ý²d¿×ÿŽG,—(±Z¡ÕẕH®ˆË'¤n4ÔF½ŽÓI]ÏØí 0KY9.YJó9òy ‡jF¢×ÃýŽÙìi†u(ðÂlwÂd‚n¹œº¿Ý¤©©fЯBd*—•‘îá ¤+•¨P d°f–jç‘~Èߨâ]@>Oo™blIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ai.png0000644000175000017500000000107112233761321023255 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ËIDAT(SM‘?hSQ…Ï{¹Iì«©1©”R!™\"E\$(¸‡b·:¸‰ƒƒ Å©tPèàà ‚E—Ò‚ ¢EÄ"UDJQcñQ²¤é‹y÷Ýûûã Âáð gøà—®¬½Hr\¸b׋9\›çÑ|üþÔ«22u ‹Ì£ï pfÃ; Ç_ÚÒT\ S»<~bÖÿZ /ÏŸë8Q/Â$NÀª¬úðâ}³Ü[+l¤3í6’DŸýö5“p&{=W›ÚcT¢|%ÊHâÄæÃHÍBóF}²1ºÍ_65‚9:±—¸õ]ôYÇíécCY‚ 왡k«›€ wGÕ¥¤ºm¶Ãêg£ÑêjÄœH¡ûÝ»ùá(ê<"àÍô8ßý|þ½wH9Ç|oåÛZùô‘þ[ÇŽ€›s?®Ké «i€É' ·š­]ëYH„D‰Å“k–rýd­híZö­gWo†È©¸ÁšÕ“xRGÂ$¢ºõù÷ŸTâ[["8ïE ¢<+± ©'õ¢>õñ§“Ò_LJó€7Èœ#+X„XJ¬êYI„ÄÂ,R&À*‹ÿ™~¿-À€Û0€‘YH-ig{IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/au.png0000644000175000017500000000117112233761321023272 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe< IDAT(SMÇOHSqðïÛÞhKÓ¹¶i϶å"ç¦b ³Â²Ù""(蔣 d‡.EÁ@:fQÐ%°F1…(­\D LÝ5ÛÒml{¿÷ûÛUø\>ÒÇ‘Û3ÆŽèÔúX1.s~…‡¯·þ<¼·}ð~ªE @/ $¾XÀÒPdìQ´Ø4ŸH•vx,6Ëë4ú²ø›Q®br.e)³º‘˜]y2:.¥L&ç»úÂ_R.sM3Ô×i\ª©8fß½b¸Åßûp8᜗ƒüÄ€áp ¤êˆ³ËDTh”ÉdR° ;z{¹ɉbœ~ þ"Ñ6 ^05ˆìŠl5{ûvrle$I’eYEˆ Ó1Õ&±MŸl<¶rbD+ˆ´Û6X·kD–ç^¸º.‰Ìì“,Mm4²ù̪vз³Ó’I^Oòg3,—ÙZ°½^iÀ÷¤ª+̱ó¼C£^ä!<Þ‘P¼ ”YݳJk}{q±ðÂgï믭պ0+{Z)ãØ‘ˆ‰¨€‘\ç}`ÅñÃ…Q×ȸ†[¹™D£úIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ad.png0000644000175000017500000000077312233761321023260 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATÁ½jÐof'—("Âb@ŒØ("¤Ð+!•½¥O`ðÒøÚØ‹EQX‘èî:s¿ë9ͳ—_E€„XûæõMrt @ºUOMdUD ì7MŽFVå㱓6znåF³Rý}pÐum àléåÞVý¨2éÁ´ñdY%uª)L§t$“•Q‘å™Uvüv{]-Sµy÷ÁU9H™6¦º’ŒdD‘U¥—ÿœm~^ö{«æxB*MjPš4j´bŒ¬zМU"kÖï­6^Í•B ‡:pªhÅ"³<èNwξ\ü®“sû¿þ¾Xÿ9LNŽ.•JŠÐ´T hÅ"‚î4OѺ²3 ×÷÷¯ü0u·k·NóŸ”*‡î:é‘îé^ª¨’{¿n…ËÎîI¦²—2¥Gã@·èÅ£.œïÜ9^°è]#ƒÜn[k®#÷Š ÐÜ~øn>—•X¿Š\`öé ‰D à€€ÿxÌw÷Ìc¤¨IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/kh.png0000644000175000017500000000073012233761322023270 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<jIDATxm±ŠA†ÿn{vçXweÁUqÑÄP #370ßAsEPQ L=ð„‹<|Ñ@ßB95£C¼ê¿º¬¡…k~Šæ«¿é ˜€ÔC@kXçÿ€Áóí ¬¸lêS‹Y²BYÈÊ–sÙ}õ)¿[“?—\¤Z5Ä9¶{¡ž9Ù¿ÒÇáÖùïdo¯èXb^/Ãd¹ôåƒ/ŸAÕac"þi²Z]û®’!g(g—.NúcË'O={ÚÌgG¯^ÒŸ—ù×”Xò)yWœ —IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/gr.png0000644000175000017500000000067012233761321023300 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<JIDATxe‘?KÃPÅoÒH[±BÅÅ.Np«(8EúYDüÎñS¢‚C7[ "Š ÒŠUƒHñkÃ{÷x“âåwç=½'‰UXkÑž+ZÞx#¶F¡¦cT¢ßB|åQ¥ìú¾`}é–€ƒÚ<@ /H›bÐcðbAP*•¢û¸Ä´nÞÄKGšø|ÎnÖŸóhjÚw#ͬ4´ŽT)(9kx®³½×±²«Íê²w´³ ²ÙaÆé®Ÿ¤ $ŠÙdÛv¯8*$˜2Õ­›$ŒDLåvãÞ ^‹E7ø×pÚD ýþ“sØ®,f¾ÆŒßI0³“03™Ëœ×‡ÎÙÕ`n¶ð1 µ†æèESÃæÈ¯0Q;îZ݇Ïi/ €Ìç#ÄŒ´(nfÐåuÏ¢™“äGŽ™Hýƒ…ØÑëkP*/·IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/bd.png0000644000175000017500000000064112233761321023253 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<3IDATx…QÏ*„q½3))±šC±¡)¶ŠKà ìfa=¯âX©‘¥7`3),ôIlXHßwϹ÷óûÓ„•Óét»sϯ~-Ù—¸ˆŠ0QǬ~ ôA= qs£›9i™@V' Ãþ0šòýÙÜwJ<Øââig]\tTMtçº"¡Á%\·wK¬­Ú¢XþÔãW­z8/B -k,¶Û%£h‚&¶+Ý{T¥*4RÍ` sýÙuŠ‚Wõ ¯JÌ'€ÉP#„)ZŒ„ŒÇ2¢ŠîyP¦Š2s®/·7¥€Ì§g¸7¤ð’˜aVÕNt/ddºWîI"½k1Ú)Àê¾Ý¥2©Ä,ñþíp!%O¥3êú‘“9éÑ` F˜gk6VtòV ®#éêêž}3ÑÂè4Ÿjpwï—èÐ'ÏÍ ¥™‚?%Ä(N y»r),II‚lÔܬ6ú4í¤LA…7à³j £Q’o¹ºÌîJåRÊ›ÉÔ¨¾€X`kXC;¨PLùÀ&~a¯qŽØ¡‚kIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ps.png0000644000175000017500000000061412233761324023313 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATx•޽JCA„çÆk*A›hðE¬‚‚Jv‚/`‘ÖÆFííÒˆ A„ Ø¥µó.h'HP³çgÜoã·‡aŠù`q‰ÿ‘xëvÀ³'ÌL5Å"2Ëý~?° î½¼>š]™DÌLæ„ô"±ÖëuI f›fk"Ö6öYF–eEQä`<Î’æ QîY!;þ€»W0çkJŽFìõxvÎ2CUs$ÀO§C™s§Í£Ã’/%(âaŠÉ¤X Üj•®Ät÷ÜÕèx´|?µ¶¬{å#7†ôÅs'¯<)-€Ú€`N§oÍ=Ÿàdº½ö~ ™l,•x³P]\ß'ÒÌú¼[þÐèoøLl^?ž´g¬ÁÕBäo-´W7~;äÅÛ¤ÏúêUmÔ'3îsÍßu?>µ“ÌÆ¶^º#”ˇ‡sKè£C=#g™¥Ð±Eò¬–úTï›* LxE#(«:v9=Ýp¶Þ¹3õA;Ÿ¯‡cm%w½µ¤ƒÙÊÀ5wó„©]ˆ<ÕðvÔ—å?¾ßY¯ÒÇo;+»’ê‘Å2;ÛS™Ûón¿n¾5ÃÛ?ÞÛ³¿ìÛÁ8Çð•{™„úøg…VJ¢ÈÜÜ,(b"V$Ó~ö¸#€²&ÒJ4“‰RºCF‘îzDZ‘\n0‰°” 0³béJŠ„”¨nÏü0½äéf§·3/£Ý El2é(‘0 ³&babÍ,Ó¡±K‘â¼N‹@ÀUààЗ àCû?a@î?ø:¬‰§IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/sb.png0000644000175000017500000000107512233761324023277 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ÏIDAT(S…AH“aÆŸµïûH%Ü‚ - VCI „ÅNQ‡Ê‚X]¼ä©ñR°h—QZ4¦xñÒhá baŽÀFÑ¡I}Ñ*·œÎ÷ù¿ï×auîwxNÏó{|~ÿR"Ñ;9ùqjê@2éjÝ @ó/;ÕûâC£°R©ðØØNÛÆÄÄîí¥R“„ÖFÄ1BÅ:]ˆ ½ó:®&?ñoS©ƒÃÃ]éôO×U­–ÑÚ# é‘¶›7/??Ô_\Y·o—ììõ¬Xõº ý¢Mw÷¶fS”òD|TÎ騛sÇæÑYËVqwñKxW€ÆÇ{âWªOS}³³k™Lt`Z7.M,|hȵî–(z¤!«P¨åó!*ÌÌüš›k'FÎÕtª¹UrÑ¥QÊ( E€¨\nMÄËLÿŒ|>u´Ù·TÝØºWبÔÖ•§¨©DÑší!¡”?ó²¿oÙʯ¿í¸StiØ·Û"¢õßkt¤Œ-Gö¿Cž½wò+_éQé¶›%†¢µ ÀºxäV(p¶wåS=ô¨üC<{OO5E …bDŒè6FðÀuð°Œù4°‰ÿò ß+à˜õyaIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/gs.png0000644000175000017500000000107712233761321023303 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ÑIDAT(ScùYY8‰Ç©´zÙtÁ+|\Ñ÷Õò™/ôM aN?ÄÀð†áý€“,ìí<ÿO æU-{¸eÇ÷¯µÕ…ôUª–=ÉÎVþõëïŸßÿÿ~ÿþ»iS.Ëéæ§›y—.øöãï—_¬Ç9ŸýøßÊþ>äí§Ÿÿÿúõû/Ãï_~þü!++ÊÀÀÀ’ðɾÓ7ˆ÷Ó/ûÎ2ióÚè¼Ø~vÝ?á·?ÿúõËËK?)É‚››ãúõg[¶\ܾ…­ªCL”±f+G¤,ë÷o“ßZ4FñYxõûï?@ qqÌ,ÿKË—V–û{yé551°­è(pïែßÿÿùsæPOˆ¢q¥ëï?~ÿfæççXqôÈG•£[¶2†‡€œ”yñU¾çŸ?oö=cýó›é÷o¦¯W®äžû÷ëÃïßß_¿ùd!öJꯪ(ë;/A@ÞÈŸ¿@Ïý¹¨(düž9ãPN¶£´÷åËÏÖ¯= Ñðë8È€*ÀŠ€š! ɰpÑÑÅ‹O¹ß¾}UQ‘„høäKJòI % {@š!  È? ãïßÿòIˆ–ùók` D¿ð3 *Æ™Šv¤IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/bf.png0000644000175000017500000000061112233761321023252 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATxmŽ=JqÅ'’EüÐÆ*Å6Þ!gð––‚M¬s Á3¤÷"6¶  ¾y3ãÌn$YðÏãñ˜}¿Ù…lžó¿ê€ù<-Ü%e41)d¨Æ–.—c©±zËj*§½¯…tyÔ¶.R@x ÚÀz+еû ¢Z@•mv7hº†ë׬|wøÉêžDÚ=Ãa%=?/pt’ßôýÍ¥:àMý§ÙçsÓ™ñõƒpШI¼àvª8T\#'ÐòÓc}XÉX¾E­Ftª¦¹óâ^sHRa¨ì4£x”Z\=MG1ÝV//Þ@OÀR‚ êœLÔºiOVƒåF-_˜%@É•þÄaæVH¹ÈŽüÁkÍ.)øIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ck.png0000644000175000017500000000104412233761321023261 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<¶IDAT(Sm‘OH”aÄŸïëÍ¥X]³O[t)=䥄H‚öÒAŒÀC‚’…Èþœì :u4‚¨Å’H $D<$]êâI£õPQ±F‡ÜDw¿gæyí° Ãï4 ¼¼tíÙzt{éÛxeщcïiW:{.’©‰èßúû¯Ïß<^mŽlå•míQ”\ø¸¹¸\ܶ}'éiFz’¤Ÿ¾5æ¦J“áRkj}-.ÿðqœØ•ªaëPUg7Ò.ÑHhs“sùŽt³H-|ÑvÔwïw==hiõí úªéÎbr/`ŸLœW`0—mj|XDÃOÅ ;–R«®å«4>ªdÐѵ6©Ba'ÎM(LAUž¹ò@Ä\ùÕë™Þ̇ï•MñÜZ.½]ÙìŽk >¾8Ë $á …‚›ù\ÞxÅÀ!H~)­½]¢i`øÌ$Œ4še³ÙPDÍ $hõÝ Ö©°…Ç£õ4`³wGD$QÒƒþO¨N€œ¼ðÍüU˜ Ü'¢ í‰IûUfž4¤7o¤?uù~W&2ó"ˆôýûeí7Mþ§Ÿ¶¶Cö^çVIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/bh.png0000644000175000017500000000060612233761321023260 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATxE‘1NÃ@EÇ‘[n°Ê ’n“›¤ ”„H¦‰Ü!Mîèì ¤Ia ƒ¢{<ŸÝ9ûõµš]½ïñîu]Ó h»•ÙŒú^·âÌZ ¶(Š”€ôT–ôöŽ¢¤žÁLÌr>£ëLmÖßÍ&Te9½¾à«¢¶µ³œNpÛ`<¢‘§¦SÜ?P’(Ö¸õ6a¢PDh²Œ–Oøù¶´:O“±í ¨j2ÁsŠ›k…<­f¶.´->?èq‰ªrh§¾tÜ/DƒèöiŠä  yš˜ÁÌzïÝ«OëÊ&Ðë|‚¢(â8ÖÌÑ~ÅÇ# o/McÏË<4M£}d½–ùÜÞ~ÒªwëTm ºäFIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/lb.png0000644000175000017500000000067312233761323023272 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<MIDATxeQ½J3Q»ß’¯ídŸÁŸ·ð£•O `Ú uÀÚ.&"V„ Qb¡(MH‘F’¸;÷Îx6—]Ãá\ΙbÎ5/ôÉØ ›iÎ8„1[Ú«‰¨séX«ÎØ2´¤Œ'ßWCÂÐu?H`# žä<', @Ѽ [ètþGš‚Èô‡ýJ£ò7×¶¢©HEtc¨Pld FSÔPýùâ®×ºé5kOuVQ¢lŒ D„ðð Eô¼]Œ ǧ­êcïAs‰_ÈÓPGW‡¸C…Øqâøà²d5÷q— óFy½üþÙÝ9)bm{yceaÕ úÓgL›hno×½½¢Š´fIbôc“Ø ( ƒí…‹K×gÐbu42Ó3d9°žÁ4§õ“oÙ9…5‘¹õ_ø‡?)càSDæšÎÙIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/aw.png0000644000175000017500000000066412233761321023302 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<FIDATxE!OCA„÷•£4„€@ªÁò*ªk ‚?AHŠ#8,¢à°(‚@Ô`Àž€ÂD¢iÒ×»¹Yî¶ M&_&ûfßìÛç/#OWue ’= 8£7ã!®â~Kt[­§Û»æ~) T’ɨš˜W"ÍhˆÚí=»ÕZ5¥Ã`к>ëµB1*”Hdfˆ ÙpceIÈÊÐ£ßØSàj÷ ä„2¤tÊeÅLd!R<‘«^¶;eú k‡™Dg%6Ѽà½DêØ§´æ¨ÝIÓôÌØëÝ$w‰]lSjL‰ù‚Ñ&ÖÀ"|H±~¬ø šÄ9ç†Q4®þóvï/ú§í¯ádz¨ý›VB›© ëkµ›“f1~·ÙQB5ˆ&Bi†Põ07„ü~},äðA†¥xЇScž‚c"eÙýhÒªóPaÝŸIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/gb.png0000644000175000017500000000110612233761321023253 0ustar mathieumathieu‰PNG  IHDR ù€šntEXtSoftwareAdobe ImageReadyqÉe<èIDAT(Sc˜4sߎ«oª§Ki¢Ã‰nÞ}»6¹qMBᙽÍ#m‡m̆¨Æsó«çeX²âÔÿ«þýûûá—EnÏ_Èþ?¥ç_+1iáåÞ¹Nžxü¯«æßߟ6]`Hj9¸çä»ÿK—ÿ?¸÷ÿÿÿmÓ®Éÿ©™ÿtIߥ/‹Ö|ïî²ç­º$i2¤aᆻu¯>ÜwÿOSýˆ‰ùbäfþñâÂ·ŽžË‹šŽêNd:ä4úßÏM ¨ì̵— kkÿOîøŸ’ò?>þdäÿRŸ®®¿ìíZZ~71ùª§÷U[ûg°[«¼lmÿ˜Y@Ìâ¿ÿþùûç÷Ÿ?'¯¾`°ÛÔ3ç|TÚŽ+WßÿûægrÃØÀñ¶è Õ˲Ì/ÑÀkì–èÕŒÆ@­1s8I%ç·±çi.Á$˜Aw\r]W*ºX Y•!¸Ñ¬ˆH5潄–*ÖÃ,Í—¹¡™ÈÇ5ŽLz΢åнÀ9„†ACN¨Hï —P°›Ix|\u–ùû”ÛhVÖçÈpaÇ·ßçÖlo¸4{yÜÌÌuŽÐÐZ{ýã—¸ù7+7‘ÿze–¡ IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/by.png0000644000175000017500000000065712233761321023307 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<AIDATxM¿JAÆ¿\ÛT!¤Hã;ä%,Ä`ª4!•ØilÒ©…OL„–6>D ‘CärwšÛ™ÝqînÃeùññcgfÿ@²LY¯°{@$@ üß@C •Ó©Á9X+laY˜Á¬›²—ér"ޱZÉdE»‰ªôM#ƨ7z=„hµ$M1×ÝZfö­ŠJ9".аX`6+·¸ªizr/~ÑnCÿ=úöç)•ÔÝÌÅ ˆ"™Ïåön÷€]æy%Õ“Bwt"/ÏÙèìtÄ䌱DÖ%ã´^Š5lÕù°Å¯7ÜÓ£»¾Ú>Ü'M“4IsãÉ7‰ƒÒC“„”zC§t\žw»ìlyX;&[$ []R€-Ùç×o·óþñÖ¿èà€Q JÙÕúo7u–ÆŸIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/am.png0000644000175000017500000000057012233761321023264 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe< IDATxU1KCA„ç^®JÚAló,ýu’JHi£¶þ4!(„0šÛÝY÷í዆áv)²^ãp@ÿ‘lªh f:&¯Øï‡Í€“pŸ™ÍBTÝÌ3ƒ¨á0;n·À¾½c¼ìçD$Ö] RV+j¼Çé¹6$Ó:%S!"êrþx§7;=јËH‹Ó_ ìJO8×Ö”¤ç1åßÎÔ¨¹îøŽ.¯˜ÞäÂÍ"™5Ê×êí½¾º«SÝä’ŽbàX‡Åõîù¥r¨¹·é›f I'**ðf˜- JQ¹(ƒÏÿF(ÎÊÊÇ8 Ôž#ú+è5„Yçøæ‡Íù€ÍIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/eu.png0000644000175000017500000000070712233761321023302 0ustar mathieumathieu‰PNG  IHDR ù€šntEXtSoftwareAdobe ImageReadyqÉe<iIDATÁ½j“Åá“×#F£à$¿°ƒ3yN‚ “»C+‚ :Šàà •(^‚ààæˆ4ˆ ¥Z'© ¶5öýŸóóy:7nM:j ÈI’JLÊ.pRI9&NÜœ<{©w¸&‰ËU‰Ûý‚²«ª%™Ïvw~}î÷ú½¿Û{Rì’l·£3Ûwn~_{½0Ýè;ûq›äÈà¢I’GxvÿýÇ­wŸŒ§›ƒ—«_% It:4`pbd)£sî=½"IÐAK.ŒgIHc¨¤/]ÿ†$F²|õ­$ Ô%N*)I„É›óIc /Þ]“””$‰&im»ZWkL¿[[ù¶$'~µºµ¾ÑA‘…Ò$v[P¤ p-?w&>]¾¸{ûá”@‡tÁóÙ¿Á𸂤(˜ÍŸÃ•ç§ãÛq*ó=D7©ß?Ö% ˆCÈ"‚ÿ¨€zøè3Y0IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/km.png0000644000175000017500000000077412233761323023306 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ŽIDATxm¿ËRQÆŸÓ}o/oòÁ+QàâÐ`h´TTD. ¡„ôª»„X ¥(ap]ú-A«b@KH ACS˜›ÐP Ö’7ˆ{³¼žçÛ¹+‹>çÎgø²ÓÑÙ„ "¬†Èt9~o†«xx¹u2Ì–L‘$‘Œ)ˆþpöáC ­¢ësÿÀnÿ|&µcm˜É¿ Œ%¿½Àp­²{ãpu¶˜uíK9'›ÌÒ¢c¾D‚÷ȳ,«ú¢Ö8T¿óê^ao±´ïì&[ÿÇ0Bü†Ÿ‡ÝA·}ªíÎ'ír Õ'U‰L3HÝútGÄ,Æy‚잦ÉÌHž\›DÉ7›Í<Ï#pCaµù½xDRyà?h_@ü™;\ázÆiù=8^IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/tl.png0000644000175000017500000000067612233761324023320 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<PIDATx}‘±KBQÆÏ3E¡¡¡!Š\sxKÙ`kAƒBSM6FE’(¸$BcÎ-¯ Í°!¨!‡Â†ú"„p°âÝsî;ÝÛ}juøø¸Ã÷{ßá`vŽ;Ÿ ÆƒÁx(XnÁÂÅ~j¬{Ïú %“r²ˆ†ˆˆLÄ=ïÖjAxxöZ±×u/t.ùIhÑ—P.Xõ¶¢QÝ Û=¾»–ï]¹™¡pC²ƒÜîEu ˆ>`Ûv:.;mÜÊШ\E¾Ñ9í`€T2ŽDJ¥ƒ|.çThg×…qˆ¸ÚK€Èo¨_ÕãñÙB¡8ËkjŸSäKñ«Áê¯Ôl>:ÎÙL‚ò{8Ü >ü2Èõ?ÏDd×uçæ1»„á#â[÷gÎô$¦iul"PFx#˜Døn"0®$¥‘^i`e»"Ì!ÿ½±™/•¥>À¹CjIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/kp.png0000644000175000017500000000073112233761323023302 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<kIDATxMQ±nSAœ;¿)²"D HƒRÐD´ù‰D=ʇ¸† >ÊT¸ƒ"–RÑPD¢‡4 4&H/Ø·»·ÃŸ#y5o4#íî»› ÏÇl—èÊÜÅ Cb^ Õl ðù;Ÿ>D-’€s-½~Utï,¿|kÃ_„{oßøõ¹îDÙ¶¨Æl•UÝ”¢ññîìý»`˜ÏcDoô"ìí…”d2±ósˆB¥B4H YF :à9÷ŽŽüò’?ÈtÚØï»HAN’¥ÂŠU•n–ñ`Ò‡I<<ä`€áZ¨JY‰3"€zÖë_úécs|lggX,|6ó”jSJëîÕ4‚ªœžöON¸û¨ÙßOã1onÂj7t}šÅ 1À¿ºú÷êu Šd{‹ímnmyíëR2˜ùÎÎh.¾.ž=iú:ó.uUT®„ ¦¿Cïåmþs÷æX²aíN{ÑÀ}ü „Xä^ðàèIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/gp.png0000644000175000017500000000061712233761321023277 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<!IDATxu‘±JAEïÛ„("H°QDý;ý ;Áo°–tj'þ…Ø ¶‚µ…AÒ©1$î¼÷®Ù,l¡—Ãå ÌeŠ‘Íw”˜G`žÞ -wt«åÎYçA‡;Ì¢©J5šÒ,êéøR&祭]’È©…EDF·Âpp‚r„/¥(4Q5“˜Â«Z*kåÅM¡=p»ÀÑ¢­ºS æÕD›{tòKu À7d¿Ë>å ÇYýBCš‹§ìyÐõò2ÅzÅáöCj}/wíÙayƒbÜÏøö &˜#Ôšö@Ì¡tO¢¦1(Ÿú;{tÀÿ#D>¯c ŽÕ4šª-Œæ1s¹Ý ^›¿l£-AK üù7YOì¹½³IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/mm.png0000644000175000017500000000060412233761324023301 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATxu‘±JA„g7&*‚­¦¸ÂB+}<нm&½6y‚tÁw…´"Á‹ÉæöŸÝß]~ &â2 ÃÍ|ìç€9@Ô3"# ŒJ:u¯..w·'Û­ÎfmÎ%q¼ï‘^DIýñ¯é´è÷ýÍõqÓ rFg“ÉU^ë.Š–cÉ®iì䬀ª:ÕK›³M«¢|è0Q°Þ¤Ç§O)@]ÛtÀ¾O»îå­{_¬Ú–›erYdomYoøÀè4=¤°È­@ªJçcÐØÙzçÎ^ép²Ñ¸ù»>X×–d2Ð#ë£Ýè/FR‚^ˆá°2L`%]Í„yQJ¦ ¸õþDñdç3ìVu¹ÉIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ly.png0000644000175000017500000000070112233761324023312 0ustar mathieumathieu‰PNG  IHDR vâ 9sRGB®Îé pHYs  šœtIMEÜ:8(Åú„SIDATx•¿j*AÆ¿½îÞ-î…UBÀ4’* ØIÄÆ&ä%,|tyyàX[Z!Øl£°bþÝ3s&çŒÉ2E?øñû<ëœÝ‰žú}÷i-~ℒ쌘ԂÎHPµÌâ(Bün ®Çchœµ•œsÇn ˜H­¿«þ8™ þW«!›Âû½_R-Xº:m6‘êÙz½îºÝ.Öë5NIš¦X.—zÈ¿%Ì`0@’$(ŠóùFÛíAª3´(aZ­¦Ó©?Ün·1Ðëõ†™½ã`[•<Ï1«/X,˜Íf¿~A”e™ët:þϧD¯¾Z­ïîv¸º¹ÅË[²bƒÒ’P‚J1ìq&Œ50lq™]àãá1^"ƒó¿g ÿP ‰t5[™ ÎÀŠ­(€÷pºF(LØ• ó·ÿ_˜ü ÅM¢1IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/gf.png0000644000175000017500000000064312233761321023264 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<5IDATxm‘1ªTAE»ßƒœDAžf.@pFÆ‚11114cÝÓlAÌŒœytWݺõoÿæÃþ .Õô9]™Ã§Ÿçr‚ߟ"¢÷®Pk}õî /½@@)qÞ¾P'“Ìm{’™:ªIª}ýžpš¥û¿Ï_$è²üß=b×ëUФõ¼öœþþ¡õ´^ž>ÃØÀñ¶è Õ˲Ì/ÑÀkì–èÕŒÆ@­1s8I%ç·±çi.Á$˜Aw\r]W*ºX Y•!¸Ñ¬ˆH5潄–*ÖÃ,Í—¹¡™ÈÇ5ŽLz΢åнÀ9„†ACN¨Hï —P°›Ix|\u–ùû”ÛhVÖçÈpaÇ·ßçÖlo¸4{yÜÌÌuŽÐÐZ{ýã—¸ù7+7‘ÿze–¡ IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/na.png0000644000175000017500000000114412233761324023266 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<öIDATÁOHÓaðïoûmnn޹F-í Z  FPXö?„,Œ]ì"¢Be0 L‹B"ð AD‡ŠŠFA±Ó:X‡ÈÈJ«©Í‚mn¾Ïó¾OŸŒ%Àl (À 0 €ðè½cêUUsÔ°€¡Ä¾€¯è)+esþ⚃Ùhm˜õÎX¤åè&ï¬{ô–¬ä…(ŸLÚ€Ûí¢ø‘'ž²âñý¿~®'&¯×Ùßkðn_‘·)£”[‰©þ€cœY bÚR¿®»kkÅò¼§»Ss¢Hª7ÿìù¶Á:Ø¿ÛÔJÞuuìP¹»0»:ÑÖpxoeàј¼H )QJNžúsæøýìóTú 2°&6™lE8¾ÙXIËž òc^ˆÄ*ŒôÍÔù/MuÍd¿ÔkÁ°¥µÞÓT}¶µÚ?ñÌzø@Ö”(’¦æ¿çO¿ZMß™Ϋ<Èl ¼§wGÈYô]–Ÿ„HœÞB¢/­»>=ü~.¥ ÈÖ†Á°¿OÇ7Î}´F®I^ ‘4F—z;Ò®ßCïÎåJ9"­ØÍFƒaWÅj­íŠHСÚZ–vmºðròóë 'èsûX3 k­µhm4¬`|}|w¢fupü"2€À `À øñ@ï™I •ÍIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/nf.png0000644000175000017500000000101712233761324023272 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<¡IDAT(S=»JA†ÏÆ[„ A,L+/­•Z[ Zˆ ˆµX§E,µT|QÄÆ"/`µ‹ë-¸kܳ™93ã?ëåìÌ0s8ÿ÷Ÿ³Dsô¿¯a#Š¢f³Ùxo„aè¿úÛçÛ4@”'ê"D'öÖúNcÌÌøL¾?ãuÄíH°Î÷êìlyv¹²¤ +­N×O€È>†¾6Z´…µ–<»s±#¤¨,VŒ±QÕ^ï”R##©ƒÛ¢š6Öxä±fÿ×,Ìx$¥’Ê(ëT ‘o ŒIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/gn.png0000644000175000017500000000055612233761321023277 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATx]=JAF_ïˆ(‚°È&ÞÁ{y“=‡Ù»™ª‰&nP?Uví4ë`ñ(øÞWÓ-ù›>á ¢øÚsórÀŠ€íȈÁ™'ÖšM“]œêãƒY¨†©ëîywÈ|{ǽ“®à™:㡯ß"!êº9ß ”‘#­sZ2í HG\ÅKè”ÐÜ1K3´r $b!„Ž Xu/9 ™•žsBzÕ§J qÆB;ØüKª)‚Yßÿ.Dê¨ó°!LU¯tMçôR+Á¢ Þ^©±^—cÞ?@[S0Ðie·—æ}Ò=œ ý@,à…¸&bð±çî¾Ü¢ºù3g…J7:8IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/sm.png0000644000175000017500000000067712233761324023321 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<QIDATxeŽ=èAÄg/'¢ (¤K#(¶–bcᇽ­öBS ‚ 6ZX¥,¬ÅÆZÓˆ¢<Ð\Hnß{ãÞ-Gþ?†Ýyî[í C™Å+Zk"Õ0…¡×F€$à*«à[d¿³M ÔÛ cæ«€c眘¥G·UýßÉ}ÐN\xÌñÇ `‡mâé»GËéx»ü³úµZ|yùàõ=60ÃPŸÜpË5Å‚pñÌ´ÿãùäôÍÜóÜüí¼{íãþªWвßK^þ%¨ÑG)¿Îž¥½¤³ûÔÝ|ÈòcŸ/B³”QŒK!¦t¢¡F8óöÝ÷Åñ+öPe7î ×ÛDÉ8Õ2 e@´%J_6zöüIŽÞ\Þ¼~kðó;½§X R&–œê ~³ ƒK·Õø-c¿ !T’eÀÌáN2C…X:RËø¶DO¡&úŸIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ht.png0000644000175000017500000000056612233761321023307 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATxMAJQDkÂbt‚A7ψÞAãDOˆHÀ‹ø»ºÚôôæS<Šþ]5Ì–woÈC*t¥(˜&GGi$š€—Ç›ÂC‚BîD÷ ƒ®2æz~zo"ð½ï¼î¦UYÑdL³Y/6¡pAµ]¢²2)KM“ 8AÏ»*žo§Ê[š? vñûuÆõ¹2P.§šiY_°#ÔÊVÀvp÷±Û;:ƒÖ£4 &Ë/®o^?Ú¸”9{ð#MLŽêªŒ›œMü¬g r,³SñÔªäÃø‹œÆas5d¥‹6Tؘ§ÈÅé± ;@£x2˜yÎ&uþ ƒ‡Ê7šEIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/wales.png0000644000175000017500000000114212233761324024001 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ôIDAT(SeÇKHTQÇñß}ÌÃëXØ4ÜÑÉ’ÈÊŠp‚VEEÑ ¢¤ZXQÐ!Æ]ÐV( W-ì±K)¢P{ITD0MH¤â”“ó¬¼sïÜsÏùŸVAÐwõù*¹\ÿDò\h"’R‘+<*‘ÀŒšR¢:™q’O­Éì⮣áøf)åÜõkÁ¶v_ãÄ–M1I45=­P Ì>á…|9•j(ÛZ±(¥ürì Jµ á[—LÎ\8>ßÃ}A€œ±®“æ¹nKˆ†»*#Cn±3dxnë½»?ß¼.¤?êK#D¤PUM Ü‘RÒ‹geƬϟìñ1˜/ûƒvnUšš¿÷tÇ$ü“ˆ´-§Ö××/ ?OWön*ôß0ü~ïñ°óu*ÐhH›ÉrQ޽éÆý–tsÇöTæ¥R׋¾=—òÕÙξRTñ×B¤ç]•S)P[0øš +è-œIhó¦l¯[yóê¨Ê8Hz\xã»õô ÉŠmµÛöª9ùp›}¼×»roi~æýTÁÀ‰{‚=Øøû›á\>QÞ'g—‹w¦uä׫îÛ¸˜h¶•(Bð°ìgZÜ™Õ2BÞ¡V\ë í×:²öÙAåÕ§5 ‚ €0€ÿú»pø!hÁvƳ IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/sy.png0000644000175000017500000000056612233761324023332 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATxбJÃ@ðûb×9C5ø<*‚ˆÎy‰>HGÁIƒP訠ÏÁ©!R©è!¡Xz÷Ýý½|1ŠPúãòçŸãKr„ ~¹?}ó(o4òçÈ9e-Ø*ËļÃfô¹œNå,^ý¨_~·Ëï¥}jhí; ‡íšºÃP ’›)¢ù@@ìÕNð|“±²ÄB°±;±²0`!v‚E®áà@8vç³{Ä*Ãò1³ó}ßÜÜX»„YÐóÞ{­Es°èOÀxŒ•wÒï*2‹1¦9è˜áÑ:¡ "# 19dG|Õ»Q†|L bÖ Çc-Óχ¢ D²žJªLUíÇÀ̤@â‚’Ð ‚qÐjH¬ÑL¿ÄOïÝúíÌ ¥åynÞš½LSñžŽçBbÅú’­„ö_»óò4òJ{0a{³~ÿ ó¢R©dYGËgƒãôK·¤ë^—­ßak0ÒR}˃ì—n/-<ž^ÄP —m¥²µŠaÑR Ú.Hþ’Õ/Öª.â$QLšÿƒ  ‘ 4`ÑáßCN³ák­±:™´Zûᆢ&3„_ZAf”i¥nIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ve.png0000644000175000017500000000071012233761324023300 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ZIDATxm=‹“A…ϼû‚¤°‘m¶X–5vúÔRIÊ`o¯ˆ(˜ÂÆ´I#D€6 ¤ˆAHaca)ˆB´ðƒˆSdî¹÷úNCн<<œ¹s˜ ú“o@æ˜!%l `D L”WŸa¸|P»«Ïßžî\ø¨» Î=°pq§ÿ÷ß×ò0<Œ×¿ÞŠ;€ßîhåâ á0ý0mÂ_r/9]s·š ˆ˜u»õù|M‚bB kµÂÝW+¶ÛE,Fñ££S³ÙË02E’«ötºlµ>4ïÇã?£ÑqÕΰ¨ Ò£øÓ'©ÝïÿˆÑ«F¯÷}½ÖÉ‹ú¥‹ïò‹Ã\¾yãöâóB©©¢Ìj´i¢¤îŸÝ¿÷æ~9Æ«=ž7ù¯ˆ1‘ÃvC5è¹k@i@!ÄÁKÚ‚‘2‘]¡š1 ¬ÛÉ'“çôZtHÚ–'IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/bn.png0000644000175000017500000000105012233761321023260 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ºIDATx=‹±kSaÅÏ÷òjbbQª‘VŠÍà H‘,.ŽÝÅI)TTHRë^ÛŒùtpZpœ‹LhQL£5UŸõõ½´MòÝûîõ# þ¸÷ðãÀ1û€<"â~ €88÷Ũ*€¤ý ˆ„DÕÕìN˜†°*‰ºä¿^ ‡éä·DO{{?l±BC¢¤bÍÐØÎúKSY\,ÍÍ¡ÏÿñFã{úÍrnúµ*I “¨õœ j+@¹\‚àÖìì©ÑÑsããI§ó³ºÀÖ¦o>9–S_U¹IÁ¼1ÒZ]6ŠÅ‡Íæ&;ˆ+—ϧR~|õFþÄHü¼*¶wº¸ }ŒçE»»¦ýæø£/ŸóK1ùÕ+“w_­[ªL_ ¯ßÊf/LL¨ªçyašè=2gJB›f¨ÛkÓö7þàä»It÷J+ŸÖ~Yk‰èÒÔÔí™™B¡`¢Ò¹né"E Û„:¬Ê­®Ýo‘µÌÄœäóùZ­fÂ5dÆîAY¸«Â ö|²B©,©R/–­omóã¥ýz½nvÞB"`;—žëüxÃà Ðï¿®ã\¦=ã8NIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/cl.png0000644000175000017500000000057112233761321023266 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe< IDAT(‘uŒ=JCQ…¿{ß‹ j“Ò¬AD\Š…6‚e`åNR¹[!6¶‚Hìb~$šäÎÜ‹É3æp80œïLàêoE!ÂÌØ‰¹s Ø¿‚’‰^Ÿ^ïwYr£^@!EcôM&“ˆqyr€s~´÷ö1ÍaY¯}ÇÌ"pû4ÈîwÏ#Q׌o–™•ÔvǺus?TG·kšÓ&J^_âg½Ï,{4KºO§«o—ƒ­ßh·½×sIˆºˆKò$ž’K%c«5ìvKƒ â)¡Zª4ª®ªPª.Â/´>SA39³DQšMA3*ˆTY¤*9/l¾ÀVLõüS?†hºûï«IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/sr.png0000644000175000017500000000064612233761324023322 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<8IDATx=‘ͪSA„k’(BLÄMзú ®Ån\©>€KÝ¹ÉÆ\ë+D@ü!¹p¹÷LWwÝ™9™ôÔ©ó tAÓ“ð¸Ä±¢‹@.Þ•»ÏÊÉxùàUm–Gù@FšœA:)3§…1lýqþ ‡åµ¹J¡@QMÇŠæi’6ÿ%z÷Û-Üå©¢G{¹éË Ñd¦lÒjuøüi@ú»Ãö·HkÇkÓÜ$Óý¬g¹ªÃ `‚Rt™EÓ׬UÖ½\Á[÷(2Æ€¼a¹jÈz˜õ=ëÛPáb8`@i±Ô­Û`›'So­çMwF6°ð]–ÀþüÏâú2ê{)hÌõß® bš¦»Ý&áž<~jÑ6Ý·Î(n RÎzeÈ=üç› ϳþ£NØŸÿ&®ói ßwOçIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/st.png0000644000175000017500000000074112233761324023320 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<sIDATxM¿LqÅÏ›}kw+B"? ­¿@/aÙ`FHF£¤P+ü h(TÄZÍ(YQ‹?@¡RØhÖÆÁ¸çÜ{}ß[“ÌÍÉ'Ÿä¾“wó­×“÷ßh&M9›²F}Øúqëî)Teîá yªPNf˃ϼ¨{@zÞXݸÙ÷2 *²Ä[†™›‰‡vF5€ÞŸ¬üÞÏ«ŒÒN”`„/Rι_îG@åÞý¬Ü)¶'OÍŒ—†’ÚBºšô G›B§cý>vØÙsÍ1Ã+ìvíâe"Ø>‰œì3íU\³øÛ|T-òÌ€ß'– ºvaÈoÕsú´Õ¾ìÖÇyÞ>N®ÿ:·É¤ZQø±=þþêM`sQk§0jÞ›“Q(¡e”x„ÓcÔï€ÁøÖ›F3¢©DË%ü?R˜˜ÜŸIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ke.png0000644000175000017500000000074712233761322023275 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<yIDATx•?oAÅßœ/`4hLäE©àSðœ‘PjdA*$zzª4´¦¡‰ Hczg !å, ±ç»?Þ¥“hóÓÌÛß>i‹Åy¡¸Ãá0¦5¨*3KDÕU˪’ú^Çh4JPã³Ù,ÏóÃÈÑÑ`k«»XÜ8ùýp{ûkžO§Ól2ɲŒ™Чñ¸¿¹éfÞPÌç¶· .w»æ+Ì’´u0zK?+ÏvuöÝE\"»åßJ×TŸ/N^Tfeå!¸jz»7Ù—@»(õìOý pbrÌK]k;ë¼Xjp¯‚v («¤€$!Á‰ÈéTÞJT;jÄbÀ‚èj«?|~ß_¿§ª¾ÂÜNâÕëD´zôàÚ­^ÝÅ5O[釃7„§x|ÿÉ—³Œ•ÙB0¿h—îN™ï÷ùX+DYL7®Þùørœ¢„¯·{\·ÂÆq¾mÔrSåºuÜÁ&êbj(AØA< @hFþiÄVÙÁ?[b=+y¥œçIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/wf.png0000644000175000017500000000075312233761324023311 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<}IDAT(SeQMKQ½"~$Ù&´’@¬…ˆˆ-ÜE‘.üš 4»]ˆøÜ-Ý´pcѪÐn}ŒfЪ9¾Ïî›§ w.gî;gÎyw|× åö{ŸO¤*g8dÿËð#¯Ý>ö42×j1ÎcÅbøð@*”JÆ$¥ÜÃh6öùdÂ(¤Óî‡Ã dpB%@j‚É$h!´ p*8W…€P#º‘êvC™Œ;ÛõsêTŠ Me†a à®ËÙït^›ÍŸÑÈ®Õö.¯8~^ÎîâGÛ_7Ï’ñÍÓÉ›Í8!xÎfw,ë­ÙŒ›f¬Trz=tð¿?>…²¹¹ãJÐA…A€7&“|özñzý»ßäóàEòãã%&j'Ø5¦íju·ÑØ*—#…‚mšht)ÞÊ–…lO€©ètj[¾JFq:­D9°@"¡VÄð+¥·~e‹€s].€ïàwí_Š5LV=Äø–A=qÚujýIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/eh.png0000644000175000017500000000066612233761321023271 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<HIDATx•NÏJºAüŠÀ¢07†FäÎjù n¢GpáˆK#Úô!THëˆoÕ¶s­´°U¨EhÎÜ?™/>¨]g.—ý÷œ3ÿÍ_ãÍf]D8„Èyð0:ÍV¢(NÐáðkJàÈB‚ Ö^L§¹|þ ƒÁ “É`éu?(ÅйJ¥`-ˆ@ÝȦÒñµ O»]ítt2ÑFGÏåra>1(ÄHâíI¯§­–ÖëÚncò}ì ‘Oð¹@â_*iµª7·šú‡Yáþq|°¿©øK£ÏŒ‰ kÁö¶egË'Ï^eQµó0Þ-¯)AP<.Öký·¾c88+Ö²uä|gçÕê‰{ªó:³FN)·œÃš„)ÈP$ä;{g>:çèŒ%\]_k|‘ï¿9…³¹dîŒùÅHT1XçPIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/mx.png0000644000175000017500000000073512233761324023321 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<oIDATEÁÁŠÍaðçûæ?'!™ ¡™šeÁÆ†ÎÆl¸InÀÂ-XXØ([ 7`¯Xˆ…’S6¤CÉ”‰’Nïû¼ÏcŒ…߯áê>ôÿ_nO;º$’8Ÿo¯¯ @Àô—oMª¨\^Zé­ÞÀ™‹×®CVÑ™ïîÝ°ÃØú±]ª_¶ÑüŸÓ¶œ¹pôˆ€¬’¨¢hxÇôÍI«'Î-ØÊ€$²3 tˆeÑŪ,Úþôöùׯïß¹ùþÕCŽP¦"•0 ¢$³È*Û£ñ¡Y?°wíäøØqK&Ui’@MU³JÛ_>û¼gyéô©G/žÊV„2Í4@A‘Å,F†áóg64ûƪ³lW¤3ibe1+£hyy|ðÒÅ+Þ¥gذÊ%)Þ¿’•?ówk @k »Zï‹k«,‹) a˜¾cóÁæ¨HjWÌf[“Iˆ¿:ðú£Tð÷6?IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/sl.png0000644000175000017500000000056112233761324023310 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATxu±JQEï3«!`PCLé¶ù„|U>!o‰E¾BˆÄ:E@›€]vfîøvò±Ø»wá0³;óÞMxÁ?Ð현+«§ƒ¹»R WsËœ-¥ˆ·¼yÝT}Ê/_@¦®BiíÒ°¹ðl8k7,õ°Ææf0’êZÆÇTs•àûênû¸M糌FîŽxú”R:¿+Y èR"y•ß®àý*}’i>_.§§“šu§Ö¸µŨ˜O&7ëõ[µßv»ÛÃá'BaÓdñ6 æòëz|T€æötz]¢ÖÈR ¨–=!LÀ3 =æãRqöcµ?¯IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/zm.png0000644000175000017500000000063012233761324023315 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<*IDATxU‘½JCA„OLÒ$ *b K%•ï`'øV>ƒXZøCÞÀÒ×RŠ•––A0A…xΙYÏfæ—oØ…m4/š²¡ˆGÑRt¥´‚"SJH`bDôÈþtvü55ªÂ»êÃëûdM¾'™&¸'äí¹•:óË×·¶ëíÞÁÇ N $ $‚î™Î ÀhmuƒŸíl;¼ß(WʨÓk܈¼ºyéÌæ‡ªï´»Óýóq9ä 7ZdtƒQÍU³i Sbà1(}É-g4¥ª…Å–ƒ¨¨ob 4ÏèI5l¡à¨™þÇUh•´2ð@2§÷º½Å!‘µA´v?×6 Õ‰4ädõE+{ýgü(["CÉzYùͯwK„éüIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/yu.png0000644000175000017500000000130712233761324023326 0ustar mathieumathieu‰PNG  IHDR XÌŽÈPLTEÿÿÿÕÔÕÇÆÇÜâò¤¬¿»Ã×µ¼ÍÔÜïÌÓä'zL*}*| .~ 2„ $XB’-QŸ@c®A`¤Op¸Kj­Ji«PpµSs¸e‚À¦»¢«À­¶ÊˆŽœºÁÑÕÝîÌÓã)zL*|--} 4…4‚8ˆ=ˆ*_@!H–B‹3h)K’/T¡5Z¦+E|8ZžBf°2M„Fk³:WOq¸Ps¹Wv¶^|»Zv°e¼j‡ÃÉÒ峺ÈÔÕÕççæØÖÕÀ¾½¤)¥+¦0 ®5 ¹D°D‹7–@#ÈV/¡G*¬O0µV5ÕgBÉgFÜrO×qP«]EÌÉÈú÷ööóòíêéëèçéæå¢$¦)¤)°4¬9¼D!ª@!ªB#’:!¯F(žB(ËV5¨I.¹R4°M1²P4¿V8×gFÄ_BÇcEÛoPÔkN T>¿fKÕtXµdLÅqX߃gÖ€gà‡mÖƒjÒÎÍÍÉÈÌÈÇËÇÆþúùÝÙØ×ÓÓûøøø÷÷þþþüüüúúúùùùöööòòòîîîêêêåååäääáááØØØÖÖÖÒÒÒÐÐÐÎÎÎÍÍÍÌÌÌÊÊÊÔü»®ºIDATmÁ=jBQÐo~î{Šáa°´ ;—–ÎÊ*â~ÒÅÞ¬ `¢ˆˆ…1FÔÜ™›˜spÐÆC9×sŒ¢‚L›RžÙÇm½fÞ¨ðŠPÊçÖ¸$þjÒŠÕÁ(Š·üðþ]T‹ÏîOåPA|”‰ÂÌcLªá‰ñ<|}¸'³¾H/€0˜v~9y˜YgÊ»Ú~¬¸Ô·×$šÕåÖòƲ;VOîdÑ]ÈÌP,̉I•É=%OøÇûKRwÇiFÊIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ch.png0000644000175000017500000000045112233761321023257 0ustar mathieumathieu‰PNG  IHDR &ÎàqgAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<»IDATxUÁm1Dç'i‚uP¢IˆR¸Ñ%çœV2ûOÆ‘ÅjßÎJ¶þóÈa%7뙘ë€2#b,H”­½·Ön7FúþAï¸ß%ýé4¼Ýnv(å±3džT%Hè@^.™ÙMë.&Yk}šóùwÞ#Bf¬àuS•"[cY†á?lhMÇ"c¿Ÿ†_å=H½¨Õ976?lHŸ_ð,>=*ÿX€\3Èmþ®©ÇŸçIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/it.png0000644000175000017500000000051512233761322023303 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ßIDATx…AJAE_Ëì<Á äYy‹¬¼ƒs ¯’{äÙš H„aêW•=ih%~5›÷¦ o0 ÎÏçø¹‡Í& 3paÿ´¢.cÇL ³v»4K©ÞËá00ùþyöðºo¯ïtÊy®vY­‚ˆ¬¶*nÝî«v 0»à¸RŠ…*Ü€¡ps“ÿHÑEc–ß ŠYÀÂÒf_lóù·ßŸ’Ú WÕ2ä¸ïÇjK¥úÖëª6 /ð‚iáøz”íÛm@¥í .Vw„„üŒVIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/nr.png0000644000175000017500000000067212233761324023314 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<LIDATxe‘¿JsAÅ'_¶ˆAPP+ ÅFñ,ò‚mz«4¶,+ÑW<„˜ÚÂ*…ˆh@#"$hnvÎ̺;ùƒâaøq–=³ÌÜë¨|@ ‘TɃ€Dñ”.üʈàtt¼ŸÂ¢H¢T!šˆh„#!œŒ4ê5GQ!´ßº¢AD ÃkדòŒÈù¹i"ïHI„ !½šÒêk”6FÏb ÿ‘ÿ‡¸’¡÷jo‚@ªÍƒŸ“ʆõ­Çqeu;%9…¥ §â>~ý³$7›ÈNX³’õ߯µkÖU¯w €is$±´áX˜%È{‚˼~7¾zû÷ÚÂŽ+Ï7P„hÀ› Œ©¢l@™ååÛÑ¥›¿ò›vן”’Ä+qÔ9ç ~Òo¥6õEt¡K{j²NßÁ!m Øy‡Ç>ayöjt®oÞ¶ïÌýí ,þ_ QÃÙœÒé O_þ¹¥zèø]ÖÀPxM¿ƒéš[8Ë [ÂcÈ—oܸ;8°ÿH½9ùÒ9^‚=²?"ÿ[ŒEGO-;qøÑw"ú êË`@V3`IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/jp.png0000644000175000017500000000055112233761322023300 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ûIDATxu‘1nÂ0†q”) baàŒ€…•©½j7ÄXÒkd@´R–DB"CmË_ÛyM‡þ‰ÿ¼8ŸõÞ¯¨®ë ç¢K1–u.÷»EQxâ&‘êºÎˆßâz¥üÀhV+6¡•R.vøCŸÏX‹6”%_Ÿ¼¼'Ì"šè¦át´N÷Û;÷;ƒ¬µY '3òx$Ô>¹Ýˆ r¿†w&ó9YPαX¤ FžÙŒí–ohï»Ë% Qs):‡EÁåÒÓë5û½$öòTÓ4ÓéTvSçT äK¿ªªê;´m›~d¸þSlò&“lŸ_vd IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ee.png0000644000175000017500000000052712233761321023262 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<éIDATx…ŽAJA ES0à\ôJfå<€xžÙºñV^`<@¡ìµÛ¡’üø?MõàBü~%ôûéjör¶]0ë°€ª‡zÖ•Ê®0±·Ó£`ªE8ÈŠ¤›Ëá(Ïz?}2 }}{B4¯L¹ÓCÞ£ãáþÎŒ€vk1´5I¤y(ã` Øù9Ÿ^ãr Êu6õî²q9u<š}èIÉqÆç.ma2wïc¿€.nëºNÓTUêo mmžç¡ÿ$ ì´ q™ýǺ–e¡›"’šÍÅ ±ÿÔ.~ìŽì~BIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/pl.png0000644000175000017500000000044612233761324023307 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<¸IDATxNAnÃ0 £ÚžÛsÑ?÷ýYsñ=Áv±dq¶Œ1 eBI›ÂuÅ/|üîø.¨¸^« †&Bž'|¥pïADÜìò¡»µJÈpÇ÷O5€Û Ï'S¢Ì8¨J­CÕ ½¢Ò²ðý¦fh÷efeÎÔIeÛˆJ±‚ÙdšÝýqësÀ0ý™Â JAœÔp¿Sck-)q%BKét@¾ß¡‡ìøÐõ\¨H#ËÐIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/bz.png0000644000175000017500000000102012233761321023271 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<¢IDATxUÏkAÅßlÓ$Õ4‰šÈ Š-Õƒ"HÁ‹?èIP.Xa†ßX–t»y¨GùѰÒþ…Žá~QïϬ³êœ %Xø´ |ùž,Ý[¥¼tûú‚ïoôÖ»+o†?I 9ˆ}–0¢èõ«[÷®Õ+}"À¼{¾¼³ÒÌ@ »»f|®3£Dp¤vª´þv±ÑȘño¯ÜTmÔ3VÊØ4]@&P` dÁT˜œë?(t0QA€†IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/mo.png0000644000175000017500000000077512233761324023314 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDAT(SM‘1kSqÅÏ{þ ”iê‰b&[lÕ¥KÑÉ~„n‚ Š  ‚QÁn~urvÕ¡:¹"8éâ*TM ”<òÞ½çÞëð x9~8pádx Tøwpá²€†OH˜aog€‡{¸…‘–å8«ÉPuÒUjzðæ !ˆßåÈÂÌÌC‹dz«›½>*gÔ“Z$DMûí>9îantóÐÛ½¼T)Ò¹åUq"êG}E(j AÀ` Ò4‚oÿ”Óš7Îî 7ŸŠtyõk&1Qo ÝÔT]ov±Þ¹v÷âõÎ"o>¼·ö|ZáÙù\Lhq ×±5ØšÔqù2•—îow·[yë¸<¾|æÊéV{¥Õyñýƒ†.·–GŸF „†Š j2ü<\JK5ë9ç)K“j2žÕ•Ns‚H hl^RÓ¹V»v{Eoceãðçá×ñ·÷?Þ1”nt‘PA«ÅªšÒÔý£}w§³²ŠÎAg`ffndxœ,†lD úoé&i¸¿¿A>ÑEÆIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/pf.png0000644000175000017500000000065612233761324023304 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<@IDATxM‘±Ja ÇóW*‚v¢ŠuÐEëèää ¸øŸ¡¯áèàÞ­º¸ â$R´T:)R¥`Ojí%_bÂõ«÷o(?’ßÇAâzÿá|…å8&€õfÓY´¼òà‰‰€ˆ…Hìßø©ÝŽÀà뛪 6¢‚yY¥È˜rš*ÇÕjªòç`°Z.ƒF,ÚxLž[n¥¸´v$²'Y˜s£$‰fQÌþø]ŒÏî§×É׹Ȼd1ÁevèÊdrIÃdè*ÝŸº'-™€™ãœm¿itrÕÛJ«/~DÝÎéñáN!øNÄHHör9.î×wo %Ï|°½Q*,æ§Däî6i¿/ˆlk±Ì`Þ!òÅZí¶Ó±µz¤¨RDG^gqAÕp;Ž·¨l_HÃ!)Àœ­rüýÐDíuIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/pr.png0000644000175000017500000000076212233761324023316 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<„IDAT(‘m‘Ý+ÃQÇ¿ç·6o[n\,›×ÜمĸFþ %%I)nhB.D¹ò¸áfWBQ.ÖÄÖÊj›$ÉK¦m~¿ó;çqΘ„§oOÏyùœžïyÚD[…wÀäÙE¡T(h9œoG4`œ8™ÉMA¶$›K¡ ûS’s%UœD"˜ ãæ–Ý“áJOMI"µ«•Â0ôRÊ—tZ¡½½àñÎ2ZœG­ Fƒ1ö”É(@¬¯³ÞÒYÏ4XiÎF=ü¸ùÕL1»üþã­- Ä¢,ØM7×4=…\Ž  ˆ•vs×aÞÕUËÒâ¼¼©i?ÓÀÜ úúiw‡ ä-nØîpÇvN[WÀ§o!œ^ï鯆øÄK]©M”WÐê*ÕÕ“ßÔç*wɤÌÑÇÅ¥lñÜ-¬¹«}Uú\’~XRß-™¾O$P2»ì½N¸3óöWßÍè,¤b?WÀùZƒ@Èÿ°õß¼]Àk!?òBtU–IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/mw.png0000644000175000017500000000064012233761324023313 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<2IDATxmŒ¡ê”QÄçÓEEÃË k2nÄjì6íâ ˜4›ÁìÈú"VƒÁ$êŠULzfæ\ÏácaA‡áÇîÌð΀žã?êÁv»-fæÈÜØ7ä7Ö6ÒGò$¥Ân·[ 5öûï¶oÙò…ýˆù„¼|Ïø=Y¯×N8ɱ´oÚ×É—ö݈/äç¨v¼åŸû—Ú±$, L6¤Q¦žŠA&9‚ãZÈWƒuòY P’뮨I<ÓÏlwhÎR΃áùû‹¬0â¨}àDöàô=<¾Í¯?C…"›T÷©,êÊE½þ€.ãÇ}3ÙfdD÷ØÌ:çeãĸZƒß ´:·¢©´Lf[©¦¥!—†-WyÂCà ÖQÐ!dçñŽ£]Û§äH³IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/gi.png0000644000175000017500000000063712233761321023272 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<1IDATxU޽JAÇg7—¢È! нú–bkc'¾‚‚•Jô ,DŸÀZ,}‚˜ÒšDôræãrx;;ãÆAöîÇ0÷±¿™ÿª8Žá"’ž{ñ ¢ë„aè:3˳|É£@»ÝÖ"y›ÈN:o˜y|¦.îfìvèø i5éhßvÞ¸"j"ò! ãÁÀÕãÜÂ(MÇ£!q² Àõ»ëJm¾¾ÔúQåä½.WÊÛŽÉÎnlÌs’õ³lxzÆZ{ÿ/! Ù!9õÕ5}u¿þ´nÜØj•9%r²úY,—Ô{7é*M9¶º3eE³ŒÆý²ji%º¼ èÓèV¬ac- I·k¥ò²šD*û§š©==êt @%”+|ÌP±„_“½RŒäF—IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/lk.png0000644000175000017500000000100512233761324023272 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<—IDATEÁÍNaà3Ó;´ÔR5*Šø“¸0Á¥ £&xn\xîÝy^¸2^&$$H¤S¨ ¥0ßyßóºôy²zï…ýÇŒ! M‚D‘ (ÌìõV/3{“²ð'çÇû³þû¥É¡ÂA8ª^}íþ¨]}-̬vú™‘FJÅîF«Ù™b–Õs(Ð(êzŠÖ¥ùÍæÍ{ya¦0…hA…+8pø¹ñðå·ƒíª·rÂÄÉQüÚjÍŽ ¿…Ü$= º’Ó‘š‹óµç¿/Ü}z×i_ž÷nŒèD .ºà §»”ZWg{m“¯¿ê¯>>ì\™Òd¡ à’ §;NõýÃÂÝõY"àcì¼íÒ!°0ÑÃÉ!)S‰¤?;Íñ`©{}r°Ý¼óè5Ãd¡ ˆ\î _èÕÝÕz³*š&T¨ñóãòʃÙðKžeÈEdòV‘G–©l˜5Öžý=;9W¶3©d”ÊK¯«a±»|ܾXgã­§E*@º‚ F@ ‰AŠ”……Ìì˜TsR½šqõIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/pa.png0000644000175000017500000000066412233761324023276 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<FIDATxU?kbQÅç^ß ëka±ØÊ…´iBŠÔöù ¶±L-ÁÒ°â'H%6¤H,|þ zgîLƹ(ÉÃñ\æä¹¢(àÌfúS©hL"ó¤Lïyž«|Ê®V}Iètx½D!:øÛp˜1[Èõ}\måüØ×r'"ññ‰— È$mûzÒ?èùoŽj°ÚºÔVRÏÓ€Ui8ùçA@ m³Um‰%DÒÁÿ«ìòŒ^—£ EP¢n«å18";GtÕj6g/<›Ëó\p7P7‘ûÕ½Ÿxï©Ýö˜ö½6[Í,{Â`úýô©Ì¬k›‚yÖY"N§8áíMœLôIDG–êG¢kv ”šÍß½0C£†ƒÓw †@ö™§wˆØÐ©_?y] ø ˆIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/er.png0000644000175000017500000000104612233761321023274 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<¸IDAT(SeÑOKTa†ñûœyÏéä”CæÄ4:FE(9 ‹²¬p™PíÜô1Z×'pS»jÑ.W.ŠRDe)Z 3F‚ä„EŽýçÌóÜÏ{Z¹~‹k¹Wû1]ÅÌ(Z@È.Ü€«¶1}õÎý`­àkG¬Q åH#ôªžôªFõ:û`Ö¥@ n6N”xò“G\ÝÖÇøbH¶"Q¨P„¢¦•|„}t“Y¤ÙoËçud“Ã÷ìÆ?廊¾­èz·h š)çh‚ò\ƒC ¹3Åä¶HÉ’/zyKÇù3âBÙ^×ï#Џ@l\µ}“̼Ú/fÿ%å Õ&…Vzí‡LÌëz=ÿdΙґL5óOÅŽ5tÒXÕ‹4s]oJ5«ãxz×è<óÑá7†e ûÅ?’ܲþERï=»Ð;ºÔs~£«¯E§êÎ~…í—Iýó>\³ÓKƒ£óÅKI¹…8H;‰˜únÐÅ€ÓNÚ3ðµÙWë^¾~®é êGë7ï-å˜Ï™…æ3€îðøáÚ ne/"M )°½»×ïÿÆÀ=©2`éIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/cm.png0000644000175000017500000000061612233761321023267 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe< IDATxUޱГQ…ÏI@ca%D´ñ]|AE0…6–¾€–bë‰ÚÚ˜@vΙ9ûù“ݽ|\nñ}sg‰/ÀóYâ×kØæÐõ C2Þlîþ±üMow· ,*´HâpÆøÓÀ£?þ|‘Å£¯Œ1ŸuØïÓÏ¿˜tƒŸ¡5¥+˸OùÚæû»r±8DþÄø#çfÎW/OQH¤ÔV€H§öp53”Éc<¸iŸöªTõÚ"”ZZ4°:Ò¯_ñ÷ÏP°Å®· eY¨“ä–uZÏY-›vjnÖ™Óký886H¸ ô€œiûŸ­9Žüø¹hÁÃO†IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/sd.png0000644000175000017500000000064112233761324023277 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<3IDAT(SϽJQ†áowWÔ`#‹¤ËØØ[Øh·W  EíZ©• …••`+è˜+°0ø·1â™ïÌXl›> o5SŒËÖñtŽŠâ—þ1îy‡û›715REÆ€ÀˆLÈXÄHöóêÊ(ë½békﲌ%˜B0‘Áx1ñ潉D†„zëÖËí|ö`y7¶ÈLí—Ž‚$ч X gwúuëv§µR,LÌÛ8ˆ¢—ZÍ  Bå£{,®[§ùYd{ ªDPRéÕg!+V‹±Ûf™ ª¿¦Þ§Úkíø;î}õTÕ̪Ž$IÒï÷4¦¯iyQæ'¹÷Þ{/"ƒŠˆ÷¤¡Ùlv:‡OÔÞ&Ó»4›Ë8H©¬J2 p¸ÇÑñ!þís[R’*ß§IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/tw.png0000644000175000017500000000057612233761324023332 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATxu‘AJADk& Ù šEÖn\yÏ<†@wÞBO  Œ‹èFeBbÿúÕöLcÌljjñ»^͇.p|Í¡aÍçó#@;긹>I~º?ì•åã¢vÁÝ÷f—=.K³HÆ_¯§Ó~®>Xêlr8Õmýð¶"Åy%ûŠÁ¢…BJãqûA’ÒP«ÍE*GÛ´ef-@ºc¶¶«»9¥—ÏoºLÒV÷@Jrúë;I™Gw'5´ú/R ðÅO±ªRŒébkŽy¥ôíd'ÔM7·$3Ð#›Ñ&´‹Ñ@‡;2P1µ56dÑV"{’{–€bÙ}H$ÿGùüISfàÇ0ùIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/sz.png0000644000175000017500000000105612233761324023326 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ÀIDATx‰OHTQ‡Ï{ïÎdMQ!%ͦiQPà2S›Ûµ ZWmtQá Hµé« ÔEQDQDÒÊ]$ô' ]„Ä¨ÍøÞ¹çüNwæ»ßýøÁ‰Ž_ÿÐH…Z‡ „Á",HC¹5XÚ\ìà–O—K0‚Y0  ŒPX«Ÿrãùþ|þ1€L AiÖ„àMÃõ€Äk;úÜ]wë”ö]˜_™›3Ugþw¦oŒ¼ðÄØÃß¾|¾scé×¼zN3ß^,ÞŸ¤D^•")õ¬Û|°ð(Î2ž™ýÙÖµ{çðH׉íÝc~0{ïkD±E¤Åò¶ÕM[G_- =v¤7ÜêõúÐùÊ‹É÷…î³³//>³ßÀDN(O¥‡8iïåéÇžˆjš¦Î¹ÊÈpuúÓÇ¡Ê÷'J{k—…ÈÅD*ºåù=1ZÃYÙûwÌ5ïsŠhæëµ+« —$N¢ÎN"Š–®R¾g+USoæI𪞠¦L`@LƒpwTo?sý§çxr& ’˜ÁÂ`öHfЦÍÇVIwEûß..§,?È !n‰P4•°CAëÝ$îaNW«ëIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/bj.png0000644000175000017500000000054612233761321023265 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<øIDATxm‹1®Akv÷G:°Äeȸ >W!Aâ<!À kúõkF3Èþ­ÒSUpcä{ì瀃+—7ÀåÁÞv~µ¦}×¶E•ªþíõúñàêËï¯Y™Î§öd²êÇ”}­mŒ]CU¥4ªòN] 1HR%¥d±QÎe<À32d jœTo{õ¨èQ½¯‡×òçäT»»RÞ\ÎúÞ§ÿo{fQѳˊì5.õh#•¤(‡áë*¯`Ù+P $8¸ÖéÅiØrÛne;¿D"i@æÂÐx?AÐ'‚?|û„¹gÝ_$k÷2ßï ‡ Üw¶éËÈ­!ûOî{"1æö¹Îu7*MVw‘ a ‹º˜—Šúóµq"lN\jŸ9øvåðëàòjsåÍèlqÏÖ¨öÑù€Y‚Ú] ./¯]=q7ðÕY:½øÒí΋ՌgõÒ€l31ˆåÒ±{HÍÄ0ºvòƒœ¥*ÅœLDš]þ̧ôÃÖ½_æÂïéG µ¶Ö¤ÌË2}© ¿mL÷eë¶{ƒE²ín¶“Ó“æK0P[>|}¼³§©Ýx5G$a&:h;Öo~úyêâ‘§x~öùÂãW2m*‰©‹‡öÓ°¾µúîûùj”Âñ…ÎsTƒº«A¶À­ ¿fÞr ¹ÿµÚg¿a¿¨:¯v‹ÙhIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/bb.png0000644000175000017500000000070512233761321023252 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<WIDATx=±ŽMa…× ‰‚äN#<À”‘(©4J*FO¥R”/  ö @1LTrLœ½ÖÚ›ÿ¿Éœ¬“œ•ìoû4¬žâôqúÓ¨?‘BžEN8sýQï@Ìž¼¼ ³RS[ÿ)ÔJ«•¦™÷ßQ’îïû¯:Ô·ï'v9ZÅ”K¬b5ÖÂÏÇ›0Iï_Úb«a—œt¢üüMóè+Ÿ½Žª%è B¢rœäÜNKÿÓªBä»´)F9:Ћ0 cwï¤+yp5–¥çàZT2ÂC’’·€ì3äPVÅÍȈ_¿—[7NOêu€®ECÔ*ÎïÅÔX;Ý0F-ÙÞþ$Y$:Àxx—ý#XsT)÷š òòÅ]2µ;k›‰fbÖ•õ9W_? Ù€@÷ŒàLJ·y‚Ü ¹‡œ±ÿø l€ðf°g{†»IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/yt.png0000644000175000017500000000077512233761324023335 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDAT(SEQKKÃ@Þ—IH}D(xTÁb‹­Šˆ^,ŠT‡W½õèÄ‹¯úW<Š´‚Põ ho¥¥ÓÒ”tw³ã¤ 8ìóØo¾oX†!IÍ<è’HJÃA&ÆI`ŒÆ û®ë¢‡^4$—J‰mC'Ec  Z×€n·›’ÉçI­˜P‚ˆ p–x)Á²I)Mø²×ƒÑH2—Ë5›àWÀ÷ú°º[¯J™Ù…ùÍÍ-­µHׇa¡P°;Š$&·7û(¬~þˆÝÒF€¶Zo($aÀ‹B?>Þ·wv8c—“;uqZ]sÎá(æüåé™r‘ÒÊ•J³ÑPJëIÄåd)F'R¤â3IÈÀB(J³:ôb©Œ%§ŽeÛŽ£•Ân¶2`²¼º2Þ¢7szO‹”TØï÷‹¥"¢þ|ßÏ>RËN§£§ŒÃ%á,&Äp8L:ÑÖÔ9ž‘IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/gm.png0000644000175000017500000000063112233761321023270 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<+IDATxmŽ=JCA…Ï<‚5 !ÄBHárlÜBRÚ éàV²mÐÆ"i Á"¦23÷Ç{3 i9Ѝ™ĤDB„”Ä %«šÒÃx\Ã¥ñmáO™m&Ì63ðŒQc´ºßëP_,—§­TÔ@³P@2Ú8„°y~ í!ß^…p^G”8Ûª&rHÛÚn†û›uýþŠï¾VyKßÖØ²m›€O©ÎÐhèQÊIþÀØÁª3y=9VìI˜/æÝvWDúÄÔOUU“§IÀ5—ƒÙz–8™#G³AI»Œ$‰„ûÍþônZƒ”:‡Ä~KöBÌÆäÉÛuLÊ,Œˆ€!ð #çÎd.-@…?Ýþlí¥èIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/th.png0000644000175000017500000000057212233761324023307 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe< IDATx}‘±JCQ †{¡H­CuéÔE\twðaÇê ôeº ݤ¸Ÿ¢{;Ô Þ“ä9÷â)ÂÅôçãƒ4‡ËN‡Â_ïL30›FpRõLq³ì‘œÆ÷ó9»ç‘–E¼«˜y·ÛñýÃëÓãõv[æ˜BC4~ÙÍ ÎFÇ/Ï‹êýíãöæ|½þTÍ QˆX$%4´ÂÉä”hQ¡Ý3¨â¢žR»6b&…Sû‡|‹ø6SUI+Ïÿ¾]‘D´¯ë‹ËÑɰߜÁD¡±`ãY"f«Õ×uÝëõ”ãtVt™y³ÙTè÷¦Sjw4# *‹ê!@´"X.ù‹%ÿ~ã¶~_ÿeŒøDIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ph.png0000644000175000017500000000072312233761324023301 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<eIDATxu1ËÓP…Oâ§~•ÚÉ,UÚ‚"‚£ ‹vuuuêÞ¡@¨PQÁAÄ )H„vvª“C«èâÒ jjï}ï=¾¹éP/‡3<ç%$šLFÝnüBù|@”PL(f¿DäµÕêQž_,ÖÞÓ9Šxç¼HYÄz+.¤·Öåù0Úl¾ÖÕ›N¿eÙÇ¢0ÎÁZZ[Ö8c1eOÓd6»§É"Ž?u:G{½fšž2†A³³Qô`bï=ð‘£VóH¿µÝÖÛ_æVíÕàø |!?“'€e’\ ÆÙ°5¾ãÄŠÕ4¢¥.g_á­òy¨ƒç¹ÙòIãæøñðeÜËØ6îÞ# n5~XòÞC¾›—Ò¿6Â_“0ø œ!/âÅK>¸Ïë}oWDÎ! ®põ OßóÍkÔj8™ÀÚ(œD•Šª¯ƒcÙ¥?·¯k«€æ¨Þ_7!Uû™i ÃIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/pg.png0000644000175000017500000000075012233761324023300 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<zIDATx•Œ1kS…O’÷@ R×@êàðÿ@@¡p7„."Q7Aº‹ƒnBƒüR£'uc2<ŠÁI¥øLúî¹7Çš·¸öããlßÁEà; ¥ñŸJ`ü~ûÀ/àPpsó-84B—;V\g¨®‚rYìî&~Bw¿M×#.G¬ÿR¢ÎRµjÚ1½ammmÔÃ_yÄë4½ÓhŒ"d&RëÔyÓ±R'M“Ld "ÜýêÆÆ©Nç¶Ù#rNSnz`znÚ3}0uM$ª I’^¯7ØÚzºó¤Ûí>NÓ¥}ùhúdڦޙΙž™Ü@@»Ý0¸d/ϧ/Í@ž6«½§N˜^±v|u>ÖÌf³ápX–¥¤,ËŠ¢0³}òžÙ5ò«™¥ËÝ€»“ì÷û“Éd0˜Éjß’—Ìn9¯xÔ#P¤7›Í<ÏÇãq«Õâ’êÅ—lG|ޏ‘âˆÜþ>ž9¿ ÃIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/mt.png0000644000175000017500000000053212233761324023310 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ìIDATxm‘±nÂ@ †}Éu+}˜Xh*†ò`<âe"U-CtQèröÙÍáÄé©|±)ò÷ûNq]×3TüCx^¯àù'ÙnßÀeM$–áîû Qˆdê·ãÑ3Ñç÷W{¹âûn'"ÙIIÎg¹^%¢`”Ñ­VyCåýfóÚß~æéf‰:7tT³À÷ |ì÷yúþŒ NÎ,€ šjñJ1­ѸAË7¡ÜàôHãYlÎâ…ˆìH&˜QÄÓ $H lƒuÅÕ5,—°XQ®”´Æ;„x‚ˆò«m_N§òüMµ[ë€ì#hIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/kz.png0000644000175000017500000000100012233761323023302 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<’IDATÁOhÏqÇñ×÷ûûjµÛìÀk©e¥ËŠrÐÊm8R¸ÈQœÜÜ–ÚiE åâ—›´è§ü+'9f\f…~¶iòû}?ïÏóåñ(mQ1Q¹_ ±RHH@ @% ¨VÑh{uïìŠFŸi&[XY*w{4ºª2Î8ìdßz³QIZÑ®{i¦´@a‡½“ÏÜî°õ¹OnЗqàí}…jJI’Oy>£žI‡¼0Å㣴ŽðäN8Ùe#þú‹aN%ݦ;~eõ´|ÐO›¬%œ²ÃV­RÈΧ=WÛƒüè§³wïóaG½Ccÿd~p‘¥ Rè»Gïû,øÍ/MúÅ#Î-²ûÃk ÷ƒN¬ T`ç3Ì‚:Þ²Nó[Ÿö)·ÆüᲯt(Û"*‰,^å†p¶–Øó‰ñÍüœöÝ!–çóõ—>Và@ÙªàtiÓí–Ï +¡`Û[_V=8†³‹Œ³¥ Pëï͸VþV @µT£@•H¨+•ú¿iZsÊ^¡%IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/mu.png0000644000175000017500000000062512233761324023314 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<'IDATxm¿JA‡{®Ä DÐ" >‡>E:;[+‹ÒÖgÐÞ2 ´l|Áv‡EwþŒ3 dù¾Ù|ä`Ó Àø?ڮܺ.¥½Ï[Àp2±hÕ1c1ae6‡È§Æ ›NópŠîbþé©zGQ E$Nq'-á;ƒ q5Þ=ùø^°¨ãq‰¿nbRòÕ¥ˆËá^÷ó t$ev*e5BEPB*!R¬"«Â´ lgôŸ½£ ®™%!áåˆC˜Xû½gÜ'fï†c32+kgU ëú5«"¥¸x%Z­›_™ù|†Ñ1×?¤JñFZ ÑX©]¥×‘Ëòí0bÖ~ó$ò÷œá¼œlìu“¯k$œ¥…× ·¢@…_Äße ï 4‹IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/mr.png0000644000175000017500000000071512233761324023311 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<_IDAT(SU‘½j”Q„g—ƒ 1bÐ*Å6 â5(HÄÒF±±Á ܽ¤ÔB°Q„K[ƒ"‚‚uAÄ d#ÙùyÅç Â3SÌ)0Ô\ pŸ‹hø…Ík›ªWõJÌì²› )vIeEÛ[Û §ôýãƒôDQWœ›Ô»ž~–ºhrDE“å ƪz*v–”NykM·×Ä#2³åE’¤©ÄFwûX7&fQM¯ye‡lœ…wÖÉ#²¨WTR×ûzvU<$¨oäw¾ÜЇŸd‘¡c FÊŽ¹ÀݯÞ[×›»Üú"ï_ÔÞoîìŠ+T4,4êbè²ÎðÞ+]¿Ì—„®GŸøä­¸Bu9NùoÀñP .žå‹|þN Uây©èÈWPh˜BåÕÓ«ÜHK’å²F²ìî$éISŒð8jþ+ÿ‡~'À9üézh]–ô'IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/bw.png0000644000175000017500000000056512233761321023303 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATx}QÁJö@ œô_¾ÁRPЛA|Ã>xôE|/^zS¡—Bñ$,(|ìfÓ |§a:KfÃ’¡«gý`8X$Š1ŒUV\ê ðq{ Ì£JYL€ÕüÄú/k•UY4‰š¸{ú •YoÉÎeŠ®Â&œSq›>ÿOÖ eYêºFª:ÿ "Ç‘t]7MÒú9b,ä¿ÂmÛö}0g;.x{k7¸Àz!g6Ä}¾OtÓ– hžç¦iþ~½w‰h†púr|s×½&Áf'ÎE¨ \áþñ$€E´:Ûù*QvŠ$ä"[©eQ)Ѿ°ß„Ê€Gd\Z;|gu}ae‡ð½IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/uz.png0000644000175000017500000000071012233761324023324 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ZIDATxuP¿«Aœ…óÁ+ÂCïYDˆH°¶N¬‚…‚±²°°ëüB@üIw…e8±Kb¸ ÁüLÎý~¬Ù=i2ßÇ0 »³ËàY¿ÿ¦^¿ît¾özŸN’w?¾ÿ®Ý¿nµ^ ذy!ü…íöC’ŒÒt®ªíöÃý^..Ìjµïv‡LJ,É`ð6°Xì{Ëå®Ù¬ÎfÛøÖe–ýãËÑhMV,‰µL$•ÊG/ðiúñÁ&›ßùö…Exb}æØÊS"!RKl½¸¢;C,Ìfó¯TºÀ9‡0ç`ŒIÓŸ‘ª(,/Îƨr¤Ð£æ<ŒsÌ0O€ç/ßÿ™dÊ,á¯lùÀ~-1y³hêfõî«tõ#~ôk¼žR8eÙ†bÈ3“U"ñ,R‹RDÈAÂåR™‚ËZ„Û÷ï²àDT4{²ù s`‡Sü:Ë’Ì^°yÝ?tš«ÒÔÕÜÊ®W:Ÿ÷o‡3HοKJmèœKå8Ó (,¸º_YéŒ9k¦eõȨp‡—žmŸÿA9ñG_"ämñcIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/eg.png0000644000175000017500000000061212233761321023257 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATxŒ1NA…߬ • "6T”Â;z:ZCaéì¼ ¥gàTH¢›- ÌÿþÿwÙdk¿ÝùæååeÂ7`8cm·~¶Ê2ËÅ€›ÁÌUêJ'AºH – ‘ýjUž¦pÝ}@ÕUS›ìÉ"–Sˆcê‹Ñˆ@ÙN‹›[ô¯ÎÏ«BUŽrq÷S¼wL¢“™úýîzT5„ÀÝ‘?3=T¯]çú^zCšÕu] sîò?Ÿy¬Mqÿäm3+Úë ý =sñp7³0™LæóyUUªÊŒî¿ÜùòÖ#i¦Éª: –Ëe0›Í¶Û­db&‡ìœH!u<o6›€‡Ã¡È©%åæÄŒ6àüþ×NcÏ'IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/de.png0000644000175000017500000000063012233761321023254 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<*IDATxuŒ=JDA„ëý,‰bbআ ®‘¡b¶ ¡÷ØÀ[xa/a¢©GäõtOw[³oÑÈzõŠš¡¾éÖë;ø„ £ÖP«þÑh6m6Ïl±“{uŸ³îeV[7j»}û¾ðþñÉ›ùZ©Ò¾_‰ÿ‡Ç[ã8ŠXrM©6¢š”‰h6 ùÓj x²²r_™¥jÎY R¢È®HN%TVGišîàN-¹P= -éišù¶l¯³ˆÍã¼ÖâRÚÀÍ Ø pž9Dz„Ñ>—¬¹K¸%3˜×¼aÌ äYä1WÍÉtn©ÚÂyÌl yÒÅ=F(²W=´k³"-[gÖL•†ÖþÝöåòÀÄ” ä!zA8t€k+‹!À€/Å8 ‡aÂ]Œ‚IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ca.png0000644000175000017500000000101412233761321023244 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<žIDATMÁ»nAàvgíõlÙÁB4(à©SSò)Ó!!Y¢Ê ÐPp)u^ñF©,Q¤ rBŠˆD1YØ™sfΤâûÜúé3»¼,|ÎN‹þC€ˆœN§@€x[ôæÏ”Wý~Ÿ×d½v†r|“f•¯níîúîÐrþöú•ǰh?Îóů%cóæ­…->2³ÛÂ÷LT€"…À¤TµHwv~O7d½VmšÉl4Ÿ“Ô%‹$À[ÓPÕb´Í u=ÚÛk?rÝz²µåê:çÌs%PM€Oçß©Ê(‚™‘t ›‹Nn7çl…Ö:±HIŸ‹ê&ã"·Î9’º“ GP…s®ºw¿ÏL“î0 ?Ëe$! @UWÛÛÀðϱ2Ý"ÚIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/be.png0000644000175000017500000000052512233761321023255 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<çIDATxmŽAJQCóu”ATÄÌb6^À y“¾Õ\gtׂ+EqUIUiÿî¦0„ðy•ßpª¯O\D î߈ÊÃ0ˆ®í•ãÖµÔ9tvÃ|V’©)‡ rß¼+‚€gr±3–fI¶ý~YˆHwןÉLÏ´LuÀ&gäLíYTÝþÀ HNRXÑÛ3 ­ }ÀhTÖB#€¤™I¢Uµëù”ÆõKâª^*,/: Bw­ Úív$%o{ (< î³h8Õñ¶!Üox:} ¼¿¯ZeïOä §IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/tf.png0000644000175000017500000000070212233761324023300 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<TIDATxuP½/CQ?O«Âà#’&Ò0¬]”Él©˜ †Z Ä †ŽÂ`²H ì’.ÒÁh,‰Á¤á|Üãwß­Äâö¼_~éû}œû2Ü£üx÷ „Y¡ë§u"%âßù"*ñîðxÉapϲ,:·wÈ4SÝ*×ƒâ¸šŠ€Úeó$œüíý³×ãNÏÁt¾?L”`ÂV™F !­§2;bYDl@ÑhÃVEâ<˜…¨Î)U4° ˆÆ•òS¨Õ¼Ü<Âù+¸$æÅJé_kìÞ ½:½„¨¤6W›Ü\›E{·ËçW·q%b3:¨ÓýÀÅoµ_‰²…ù©ýÓ{5' }xP(Q­)8_£À±‘ÆjÕ=œÕkÕJúJŒìòøÆ<é–,áúîiyq¦yñÐj¿iF´Ïÿ£XáýåÛ\çiÎ7IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ye.png0000644000175000017500000000053412233761324023307 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<îIDATx?jó@Äg?ÔløHeit7&ÇÑR§´ð!r‚œB·BÒ¥•bÿÌäí +¤P“ß~?ñX÷‰¸x-¿‹+õó“Y"Á¤˜¢,Ñ̈!÷—× ñý )ÉBvN(öžÁ[ÿwÿ_ø>ëxÄõ I$HYò1¥RÊ›"Ýnw÷U¹yžëº e¶pÎãX‘ B.ÛÀ9’ùà¶(³“òÁåÒNÓ4¥”H®^‘´,÷û}×u@Û¶Ã0„‚÷~ý1ÌÑRhš¦ïû €m‡CX>›\nC"c$þÀ7V3a¢Û=^¾IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/cv.png0000644000175000017500000000075212233761321023301 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<|IDATxu‘?ÈRaÆŸ÷Þk¦˜BEBšÚÐ!BQƒ99FKB[K‹Ž-ÖÐìÐÒZQ-IÐT$ M‰Y†é-íýsÞï¼\ô›|x8<÷Þß9ÎhXlEÍ€&HŠªó: tn€e¬µ$Œ…aÌXCB“¯Éã¬Ére?n-Àiü ¸î›kN±µ{Ìeïq †­ çŽÌÍ3Ïõ/Iƒ7ß*Œ*³5 Éc ùþµÓ/GáÑëÏî çÇn•ŸÔŠïy°³væHcŒ²è;DÞî–ð¼¿a„¾Ÿl·Eaî_I­›«y”²RŠZ"ÖÈüïþÔ¯þXå^z…Âï^O(¥¢ ìn`l:±Ët·ég¶ZüØ(?mõn™”N<¨w¾»úâk5:”68yoïÀG©}¶â%`²ÈÍVÙlju¿Þýµ8ñi\ùðã|ú Å‘‰‹tD½^ \\îÿH° îvPlí´‹B%¥ÃIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ag.png0000644000175000017500000000077412233761321023264 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ŽIDATx•¿K•qÅÏûúTf7â^Q”j¼AaAƒ%8T`Íý˜‚À%¢pË¥„šºC"8¸&ACp¡?ÁáêRHX.÷Þï9Ïót¹æÖÒ‡ó9𠇣ø?²÷ÀúÌÌ/À»d°Þýv債\×m6›I©<¾²Rœúµoß[fáöhŠkŸlàÝxöÏLðÖÃÔl¥ ' ï8ä1n&óp¾­Ûè©Tîge€c#iq¹ž5™ÒI²ì+¼Úìû:>ÝŽžsGŸmÜÔ—u—jŸ«SY»}çõÝ¢\òÝËCš|õdþâô‹Ÿ·Ù-—yR46ïé÷ƒ—÷³^º$ .‘ǤËçJ¬dƒet2TÁÐÑžkžV{wH9ù÷¤ Q/e'ÕzÛ44f„‚æÀñ¥G™y¹X!¢úFÏghRQ"zðâƒPJ !˜Ùq• CðÿˆÈv”®Ã4–eéÉ' Sw=åIY®X«•æZµ•Œ‡˜y¹XY]·4Ç“¥¯Z½sëþ;³p}i¦Ù¶/žšlwœÅ{ï™øåãÌœ?ÿÌsÕhlè깃_})WZoÝÐ @§ç¼-Uƒsd‹‚ÿQŠ$ÑÏ_½âçÚL.ÅøC`[*uùlz,6ä*µoWDû!€D4DŠ s™ØÖ`Ïv5Á€À% ¿|€ X@·^JDñø4Ѐ  Ðo2!•aˆáIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ar.png0000644000175000017500000000063712233761321023275 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<1IDATxM‘»ªAEWõ-ûŽÊÚŒ˜‰ †&>ÀOðLCcc¿GÄD3`"h,4Š2ã45U{Ë¡ÛË,‡]ÔŽÎIO>{[™*B• ¥ªJSUQ¡ªïÈ*O¯ÏmÛIF ¹954º&+žáóOÛnc"ô÷˜F(^Ý÷É–”¿üÖ­µK³È}álÉÚyF¢Ïþ8¶üìëå'üØ»Š³…4Ç\ò2¹zžW.åNJt›Óe¡ÍÄTj¦ ‰¸‰l¥;ov?ËrÈ)¤IÑ-B!5Q¡çöpçÚË1IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/sc.png0000644000175000017500000000102412233761324023272 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<¦IDATxUÎ?kSQð'·'Š ÁÁAQ Ju(†KKƒÁ?Bh—NnýB…‚ ÅEÁI¡vÒ"q, Ei«i 5%Ð*ÆrMÚû¾ç<æž+ˆ/‡—sà÷<<Lô–—ï€spûpy¸C8ü;ˆêõ›^ ‹Íññ;¤4£:ôRƒÛBUÊß-.Ÿa»Ý˜ø@î6…PbÆ1E2…‚óÚ9kƒ0Ü,¼Ö˜sÊ· õZÒDÒÀ@8œœü*pN¸ô_w²GG13ƒÙY¨jP¼ØîÊÇÂ7¥ÎZ–Jœžfé2²Æu»é—âÊTƒˆñDù:-f³,—Y«1 é'C¨ÌÈ…öÈÙmýÎá³=S¥öš„IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/kr.png0000644000175000017500000000105712233761323023306 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ÁIDATxcüøý+ø÷ þ1Pšƒ ˆž=xtõüEÖÿŒ|Ü\\üÜ܂ܼœÌÌ—Ïœ}|÷®(?¿˜€P Äàׯ_oݺõÃû"bbÊŠŠÿïÞýÿçÏ•g/^®]»F@PPXHHFVöĆÿÿÿøðá÷ï߆&ÆÊR’ÿ{{ÿüÏËù_W­ &êæåõæÍ›ç/^•mù—¨íÕ«W\¼¼Œ{pLøÿ÷ï/˜~þü%ñ)"òãë7RÒRŒŒŒž=aj‚X"""dì|Ãgü‡ù7g“aþ³ŸìÕÏé³³sKK002ÔT oß¾åáæúª®›«^ÉÌÆúˆ]ìßwÝÔ¿~óö£¤¤$#PÐ@ T}óæÍiÓ¦ýíaÀ©j¡ò„Yˆáûg6W'é}ûö××ןXZÚha$QÐÂì†Ý;3g¼wÃv9œùø.3ÝÍpî þ)öQ"h¢ÐCEŽ¿áÁ£ËÑHÐi#M]Í5‘©JÑ(þnö:G`®~5féº[»$¦†x &gN@OŸ\ºqu´«ÍÝqœpgòTqI3(r-¯`½^³™mKyþö»ˆ4M¨›¦®ë鋯¿ÿl«ª*Ë2r¹\¡·9ÞÃÍñÉ(óO›÷6QîLFE/ó}’Gqº·7/ç?¢Þo_FyµøY7Öí]U³‡Ï>OÆ«’4º*Âôvæ`ŠNäÓ§3`v÷þµo«J„¢ÔC0‘$"l©jTõ g_s@å8º¥¦ú^-ÖÍ<‰ºÓdÀ= ß}d8$ŒÒ±ÿÙ½tÃ1OéIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/dk.png0000644000175000017500000000062012233761321023261 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<"IDATxe1n"AE÷L°ÚÒF+M@ 8Èú ¤vÆ­9W@F‰ñŒ-ÑU]å¯b"ó(}}µ^Ó£J=`¢ü­ÕÎçk×±ÿ §eûµ^‡nœ”RžÍþ¼<Ûç—«º"ÙMäm³iâv<¡Vç¸3ëþÕÆžq)^ í<ŸÛý˜O¶w7)jØb…E’H™.PUå@ÔIÎ> (Ú¡¢ˆ°PN|?¥ä'flþ@ʹ¿^ÛÄ<ÚAr7³öÜ4³Õªî÷®ê¥üÞn½ïÇÿO6|Ü¿Ç"]µ],Ž»]¼‹ã€ Üp»M‡¼ ­¨uÚ’‹æ®‹¿© Mà bÓ}ýª¹†ÍÒ PÀ"9ÿ.=Þ—Ëé0QH¾®Yõ— IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/dz.png0000644000175000017500000000077212233761321023310 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ŒIDAT(SMO½/Aw;···Nr¹Üžœä ‘HäZ…ê"—P)…J$ …‚¡£ Rhô¢#$râë°Öî›/ov/“_&3¿¯Çz–íЇxPˆQ†¾e»7«¶•¡G­µŠGAÈž‚öæø¼PZI%…”æƒY^¥’…4Ñ•þ›V«ÅXšiÐï/†**Á9ö¾¡è¾T•ŠÊdÈ5a»®KÈ ~ 6—‚Nõ#˜¸~ÌaðãüH<,ë7ÁT cS„#Èúí³‹ÑZy}¸ávÌÌ%ë%"1ÚÒØ ZÖÈJŸ_ïöµÑÔÈý³“òîa*•JìM‚ÆšDdOGËÅûîÛök;»°¬ö½ÅmYRJ+.fÆ›óÈ„ð½.gú ¶N¯øÝnqrJ#ªtš*Q!)€ ÃŽ8žç`¶Vx šõ1]­*Çù¿1iHðNeJùÙÇ9³Q«ËVCƒZǶ±}ÂŽ+1gg{B€~аa®6ZÌu&$j’\¿œúWÔžBIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/cx.png0000644000175000017500000000104712233761321023301 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<¹IDAT(SM‘;hÓqÄ/ÉßÖ¦1ê MJU,±A‹àctô1 JEK°P(:HG (Šƒ‚(("´¨8 ‚ƒ >(¢8Dªâ¬µ±Õ4ÿû>~¦ã8n»O=ƒ¸þ´ä€º–íEE˜ž(pø­÷~s¸¹i0 ªAÕU]$¨9±E§~ÈÌó™è@#ýýÞQÛûÞŽ¼Ôª¹Iñ–餳ž [¡ˆ¸ÃÌõÝ>ý²ÝŽ?e¾¦®bÂ@qÞ Alý'‘ÜÌËåþîtJnæí W¶%Îäx¶—×v26–>óüÝ9÷G.O" x6U——íæ­‚Äé|w£*|°H¤ Ã}üð›÷Š$€¡¡œYˆ"­’ñÒbf¤‡wŠq‡:=î£9¯Ö(.P¤€SFg½.ƒƒ¹b±kvö×ô“C+õõÕý##2¿ãM¾òº¹¢®›Öm\ú´”•J{VãØ›M# "é" ŠKôWÏÝÕƒ¯ éBåq%(b»vg†/æÇÇ¿ª¶U…H—ª«vÚ³KV;f§'ÿƒ›m0ÛÁеÀ</ÿ“P=Bw¾«îIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/fi.png0000644000175000017500000000064412233761321023267 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<6IDATxm‘±J«A…Ïþw/÷rá ƒ…¤ˆ•‚­¥ÏáSˆ­6¢Ob!X[(ˆ•vV ¢A›b@‰)’ÝÙ3Î.1ðƒ‡ÙÃîä;“ßõß>1Uµ¸y@4«Û£µÆ_N%Å?†#_ ­&UÝßéR™ºËÿíYš5Ý=Od•Ÿñ2˜‘õ'9ç‚ÐÓN‡ÅdwЍ¹jm<”(‡õ˃íNRbˆ*ÉbT2ˆZ2æ&EÛ­?Ç{gc±Ü$2%£Å<Ñ’Æ %f:Fµ;0ö ¨‰Jº@&˧D&šåS€îáé}©ý/7[‡½(´:Ùí°¾9[úêæÙWž¿œ=¬Bç*D½ŠÈàÍfùüÜï²@†šÜ,ãî{¯³¹ºr :½Øh6 ¤¿…áhôÓth÷ÛaT4IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ec.png0000644000175000017500000000061712233761321023260 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<!IDATxmŽ?JsQÅÏKn äûDQI%ilÜ«q6ÁÚJllÝP ¶j 6þ1!FIî9ã /"xùqøqæ·Z=sÔþ2(Dv¡ t$@?Ú{—¡P˜µÌ“f„‹™D’.³ûë8ymq O£#UgŸ À?×±3ÅÚ¬€"DJ½yÕ^Á–Íšq-UúîövÏ/®NO^¦ QSª(%Ð"áEU]Ä…;ÿoÎ&iúØžmMÞ’WNÜ„9.ZÄšR?µ –­ÏA#ZKQ §*Vw@8Ì㱕ÂRÖ™³'EÂq´3ÜŽFéè~Ͱý/Ú¢õáz: U[¼Õ #‚ i?ül#AÔ[IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/an.png0000644000175000017500000000064012233761321023263 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<2IDATx]1KA…gõæT!•­……M:m%ÿ#MPЀ`ˆ•ùE+1­iÒ'…I "$ξq.{œ‡¹ÇÂÌ77Ïm6*I„è0•ø¶Z.3/)±FµZ5WÕÈèÕ5(@€ÖjºoE-‹ ȧ‹ÇÇ»zŸWIÎ9Éÿisf” à2°?XÑ]·ÛšÏ¿rî{noND´×;Òíö‡ÞK£q0=V âÿÅj08 ‡þ¸wÿæ¡ýþ)s`+@ˆØBÀ>ÀK»ýrÙ:¾8?’ OϟΫí2f¿.íÜz½NÓ4¿>ªÙÌ3ëdR°Ð³Ù,‘¿¸QÌqÚ¼œØ ŠiŠª×÷Ö$sUÛLd•w3`µZII%î#’éT*H~ÆiN¾ÙüáIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ro.png0000644000175000017500000000057412233761324023316 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATxeÎ1JCAàŸÑÞFB msbaãA;°ì<„‚Š5;ÿÎ83y'.ß…üßì+X>à“ˆ3õýþì`PhNý.¡ØMůoN¨µáp~5›mš1r-vI1F®W«ê†çWéj]Õ'àÛLÆ¡Øc³Ö¼]‹|Pƒ·ÙcÌhÖ2%.êmÙˆ$ f[I$h»õqÿ ©÷„6‚ìM@´G@êôXoÍMÇdN>©ˆŒ@:ѽ/äz#`ã¿êXô2™š€:zGЫÇG3Oö½a˜_¥@@P‰SF5GÜ-ÿV÷/wçµB Eæô"ïÏ/'­o6RoiIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/zw.png0000644000175000017500000000077612233761324023342 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATxM‘=hQ…Ï›} ®+dEò£ B, ˆ•……dYH*#D1‘´j1… ØF«hg±` ƒøƒ A´ÙJÄ6… º?ë½÷ÝëÌ“Õy|œûuÎñíïíɹIÌhD†NQ¨$)üøÈ¸lÊÚÆ­±cLÕBDr‚æp°˜*b|ííSÅRãæ«KÓÓ}s 3.Avnì\€UîtUÏÌ­µn\>­ƒÄ‘‰(³ 娰q‘¾ÎíUøŸw—“ٻϿ߹ÿ£1:úäÃ×Ãýn`Vfc 9ÄZïêp ðé©úø)=µÅϽ×óWÍ&ÿ&f&¢á)îÁªlÞ=¾¼1“Þ»=ÉÉæú¥Ù{{ñÒ˜&Ñ…³:¿¼BkWVTÕ¦¶^?[éxG¦¬`s¤ŽÕ‘9¶DÒTÅsLýgÏV·ÍÇN”óüßœ ÇoÃgYö«×y°q}ßÔHë[íoñZ$‹Š†›³°ü~kgkbÿ.ë ‘òÆ¥í«øƒJÛ½×H}IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/al.png0000644000175000017500000000074712233761321023271 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<yIDATÁ=oŽqÆáßýÂãV¤¡Å ‘HLF‰ÉdK†.F±±Xjaö¬‹¯à¥ÑÔ£ú´÷ÿ:¯ÇÑ}z€Ñq1 =88$$Ì0ްùê%P™9FìüYÝ™ú>âíÞáõ!Ü;·”RúöæÝ¾ûsÈx¿twêo¬æ§û+7»7u¶—/~l­õnvòÒ¦Á˜IETD¹ßjû×ÁÜZÉN»¿þ×díÑ4¤)ÍÒåÐ÷FE”T®/‡Ç—ÓMZ5û~<·¹m„:Xe³2KS=E…§«äW ¤Çk]k­µ¶}¶_O»VJkÑZIÀ˜PîÈ#t½‹+‹ú°4ÊÜÚÇe>Xt ¯4• É 7@^2omr{¾û÷ö¢–s[Îíþ©îÉåäV2Ì2üÆ„ ¥,Í0{vn\·†ú×ç×ÎùaVR…§;0%6.öRJÈR¾µ~¡¤ ¥{ïŽ"SžÐ} ÁÁ!ÁÁ ap0føeúB@d #IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/vi.png0000644000175000017500000000110012233761324023276 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ÒIDATmÁ½kqðïï^ry!9îšH©%fSEl«E𥛂:ˆ‹"ºèЭè"8ˆN¡ââä êà_ ´ÕM°FÒµéK¸6—&’Üåî~yK&?Ñétð"´ýP\¼Q ¡èÕ8ø¢dæÂÎ3ˆP7oÈî+(ãBËÑ Šz¥†×%¢°»ýlÆ.EÍð#ú¦ªe¢+lœÛŰïôBw n´F4))™¹ÌA½,3U1eþÁÉXúœïo;Í›³Ï­‘«Ûa.aÉÛÙlR)I‰•õiRö„ýI¯ål}ý//®÷cüÞóB+u,‘™]\Ì5›}M~þðÖœƒû๷îÍï]»{ߺvuëñ£˜.7ý;ŸŽÎÌX2òˆHÉâÍfdY:ƒÏ?¹x›BÐIA©žj$ë+Z­®®ƒ™v×uMÓdfíú™—åäÅ#g×—ßþ®¶s…´]ÈxO]õóØX @­VÕˆ3г/öï.)ú‰üøëpt5¢ïJ× …é©©3 !¤$á8ŽmÛ<€ˆ& ‚`ciÉöý®‹ÉÉ4À*•Šh4ô/)%RÒˆ$†þèá&óþÁþIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/io.png0000644000175000017500000000115412233761322023276 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<þIDAT(Süþ×}¸øq”æ¡ ÄþYÕ.ƒ7ð¼ðÁÙøüôú)¢×\üú[G™š—Iûäå÷àâ%$ ¨·æ åìåàú¯ ñðû&Cèæõõ__UUöóýõõùú ùýÿ®áÄì üüþüýý>¬ûüüüù{Tç©MsLŒj ûÜÞûàâ 4/ôù¡»í' ·à{ûÿöüýüü+ ðH™ÃTEË×ó"üêþÓ'1 ï¡»ïÛçüûüþýþü=«<ÑðÁ.ÿ÷Òf“šµŸ&TF îëá»ôˆYUEJŠ{ýê«brBò2¼[î—ðå²lm~jš÷‰£ÄçF†ÎÎ>ç§Ï?ƒ\üçÿŸ?ÿþ÷L‚Ù[8)–~½QÊ|ôÙ^{ÕÇŠ²xÎ<ë¹sç)ІúÆÏ'O? Ùðd*Ðõ`.Ȫ¢˜½6êWßÿå)¹ny7clêæ²|ó¯¿r°3KKñ\¼üZX˜SB”ãìÅW2R<Ï^|æâ`ý»·î­~¹¸÷íÛ6”B¢FÑ? î02=.Ä·QšÝIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ky.png0000644000175000017500000000111012233761323023303 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ÚIDATÁMHÓaðï>msN3]Z†æÁ@Т"„u,‚ ©CÝ„ H;ôF¨uðRA°²N©ZHÍÔVQA¯K³RHLB×Ü/ÏS}>f¨£ëSYýé;ïΔg¢!ôd[]ïÓ  À°€°¦s8÷¤wÓ¡#»ìÄ„Ë-­ªŽ%*¤Äqb âáå{þ\,!æTò”Ib42¹Ù¼yú½(…B´rU^üÔ4ÂEù…‚÷Ælo|–æÌmë1ÀšT¬ñd}CIv>/S¨Lo¬ýõ}Žù§8O$7æúµµÅ•†ÛÞ=·²P“ÝÒŠ?ø€†PYëãÜêݵQâi'Jä}gWnè‘[rþ L0 éôý Õã™Å¦8y‘ñ/_ÕU‰Ç2åµ/}¯¼é˜ª›»)v'306³f¯ˆPzÂ{þø~†(Ns!wø@sÞý³ãêÙK)ȳ÷$*¢,B¬äÁcë.·eWL^¿5þEEŽ·¬¿°¿f_ eQfaVb%!ÑîÁHk³?Ø\·Ä¸=|0€eÖµU¥ÌNþsÌÊN…•Y^ÆÛoÄâ–³)PßµnÀX€ (þˆ8+t.¿RIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/pm.png0000644000175000017500000000116112233761324023303 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATÁOH“aðïól3·Áx·¹ÙTÉ’ ´KH“Ì"“ jDÐ%ºuÉu(*è…‡(*ìßÉCÐ9Š]üŽ’ ͶéÜ«¯s{÷ï}Ÿç}OŸÛó½S¡ÁåÙíÏ  x ˜€oóTr!1.ŸÿÕŒD¬tp_V ±•tZ‹D÷øØ®ÍnßXrëëYïéܸ’ú ˆL¶ch ûëOçÜ—¡‹g‹'.Ôx@Ól)H¹dŸý¹SöuÇ‹ö–#¥"Ѩ;®#ãá)p¼¥J= )0RÊU8<îOýµé·ÉDÇÖÒï®–5G矽¹Ì2ð?~ rù܎禑ŠhÛOïÎø¸U®¶5šÛM«!_Ï[Μ[X|Ä Ð»7wÕ²¤KëÅÐ̇‘BÁ·¥3³Bõ*:W®jàM@xÀ•Üèñí ÷j^rØjqìù§‘–Í8BÀ¶áá¶%÷HÀd›@àÀ7à:&X€8`  ´u ðéš c;Ýw{IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/gd.png0000644000175000017500000000100112233761321023247 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<“IDATxEŽ¿oqGÏ÷z{S¼Ñ”FpËbª˜ &"eê ±„\€A,]TÒD¤C7b,†ŠÉ ‘Æ,éP‚DªuKä¦éõüx 7œœálŸOIþ·`fàaÄ q‘ØNÌô-^\o‚¸'–a¸%šXºÆw›^ÐË—žUÀÊ–œúñåtícMÏMJx†&ºÑ™š.o{2»®Ô{ªdäâªO/ûx­'‡|G%Y,SS¥Ó“‡}Ò‘5ô Tá>¹Ï&ßÛóU›ÿ©§†uâQ-sgåþ²|^W ÑÕP ÞBo¿)šºôK[sø¹®]èîyʧžJŠ„ˆ‹¹T€†Ýù`‹c"n[‹¾›ƒ÷HYhw·}•%QIÑ¢/™éKİ㵜ÖÖ€äU%ô¼È‘A½»,¿©mfP(ÖÒv­‡5‘tÉøMmêT-'vêÍŽKÇû #]»1²»ÑTÒq%´¤’F(a;¶ÙŽú•E(kÿlÃGâ1N1Oì'v¯ úüBÁ/!ѬU IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/me.png0000644000175000017500000000065712233761324023301 0ustar mathieumathieu‰PNG  IHDR ä…ªÖtEXtSoftwareAdobe ImageReadyqÉe<QIDATÁ?«Öuàë9ÏÏ“†³†BD¹¸4åÐPôÚ\z N.N.RA[K{kÑ¢`ƒA´øoi(*õxÎ÷sß]×®O>¡U&BÚtFk%kº9÷j>=BÁ€Bˆ†T8{íxÈO††0„Ñ©!¼våÒL7Q% áøëwœÙÖÕ_ºßCسV¤CX,ö7ÞΛgö‡§OÖôâ¹ýï.‹°’M…Ev±ûê½ ß}Þßo݆Mz`:,=ÑU/¿|üß'wïœÿùÛÃßþ=:}ýÁ‡‹ÑÑaÚ+£«V-¯ÿpùùζ;õýÓëŸÝC™±™N-†0üýñý07FŸ#”Z[W‡SW.í e(ÕJIìþ¹ýAÚŒ•´fš6#m*I¡…ÿÄ5 |$º÷"IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/la.png0000644000175000017500000000071712233761323023270 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<aIDATxe‘½jTQ…×9sÔÄÄQAMá”ö¶v‚…ZXY‰Æn: ò °µlä¾ïaŠˆä¢1’¹g¯µ·çÞB2¸øÎÇiV³Wæâ8cŸÿ÷…´¹ Üá(ˆ £böÏ0;iÛf:züd|÷øð(äÞ£Ò‰&Q!B.²BãÒõ•-´Íöí魕ɾ:zHèŠV—š§÷Çñ¶ÝßÙ›% PF¿qåü^gÐM(žLiFO9½|vóÎd±²ñ|ma!Ÿ”è˜z¼ïfWÀ)QÖiùB¾¸8Š!—/®-Ê©ÑØ#Ì K^EaŽƒïvü‡1äÛ/Û=ètŒÂ À…T˜yµ;ŽN¹ñfwýÑUÛï÷2'º*ဧ‡¸·¾õâÇ—¯2‰¢±Ì¬š&™ç¨þÑWׯÓ¯šwøxîó´áØ ÜÜ-‚$*’Kø¤@úýߨ¬žß˜g¶ÿ FÏDlýÙ9IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/mk.png0000644000175000017500000000076612233761324023310 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ˆIDATÁOhÏqÇñçw¿¯›~N ù-QZþÔ¦vâÀÍÁŸ“’ §µ£¸L¤·“äÀe©•æ$– ÚÃìà¢ñó§µ…Ôü¬÷ëóy¿<­ “p X%!{$$$$ä¹HËܼÊ%ü0›ßI­.•(MS:e(äR¼Y>_<¢õS[¦a›=¾Æ¹Êýê·¢V÷åVþ$‡<ž ¯¨™íåKZÀ?ÌÊžê£bKõÓðr12áãá}òtøµVB›ã4Õâ~a¥x¿|H—Sþþž‘ábD<§åP=× ßŠßÉ„˖߇ÿÊ×ûÃ]Ñ-y…–#øBñ‡âïÁ¿â¹^’þ*Âd‡·ª9¨¼E›K4cò— W|&üY~–ly1|B¾žËÅJ6¡Ó-žäYùY8£ò¦ð¼|O>žo* hó$CS…Õí¾-Ö*;…ÔìC…]B……•Ë•Ó5{´9ÏÆÙÙ\ !HÈkd’/HHHÈ'Ð>ÿÄ•?Öà,IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ni.png0000644000175000017500000000065112233761324023300 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<;IDAT(‘]Q±jTœ½{Ü)Á„*iŒ­MKý‚4ùˆ´÷þ‚•…¥ ˆUÀ_H“´6WY)Awž¼Ý™IñîàÎa`a™e™™ÀÔè°‚„šB Ý6.Î@¶h”LFi˜”\tÊ%¾œ7(ÀøÑš…’‹H9¹Òe¹£“~: üUóêÇûÞAÕŸ™ZR•Ý(ù`Œ¯o$#€m†=ÿóVÊf<òƒs¯mÛz·«]?Ù]Í^|ÿòÇLoÔlª±ºˆ·G7|¶kléÖ/ßçôuü\xíØ%Eþ¦µÔ„BÑe“8|ï>þjn¿éúÉpvç$:ö™ 5Ér–»>Sºˆç€OhPJ OPt%$‘Œ"R‘F1d—(pºÀ|]d ÿð»}å)ØÁ=/1b»°XÄ#IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/in.png0000644000175000017500000000064412233761322023300 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<6IDATxM½J;AÅïìù‹±ðØB£ˆ1 Š‚¯!>‚à#XZÙåILo°I#؈U‚ÝV’Ä-’¹ž™ÁÁÃïÎîœ;ãlHY'¡L O!’rIP÷f¤Î”LŒ„”ñ?傼)›z36óßÏq+TI !6ü¯/"Þ-톴uá–©l™©™ =þÜxï‰Êùþ¨Û¬ÂÝÊjìÊ-Ý8/R8gF† ²‡ÁÇ|ZŸm¾g×—Š58j_“iQ„°L]Ï;;§áhVÏ-¶!*ú\p褳þò>áÿ³Ãµøì_ÔÑ-õ®zÕ¤beï…½z†‹g. Û«íþ}¿$¦ô+÷rž7YEThA%ßÍ•fº&y ˆ²¸ ä膰C=ÑœJÐúv×ëPBAG@#Kû\rïÀ;BÒ'r±ì CŒ²ªDo€ë²z=[מlƒHÐAŠ’¡x¸q—ã­Ùa½p­óˆÙf”Hy+þÌíæišÓm·« 8M¥#>¥‹i*ˆ!$´Þ‘,ªÌOµ·ÿ¤J]–ÓïB{TŠ˜!‹/Tº:«„µTçó{A:½SÂ*Äv;u´ÖX8è½fÔyƒ|®×,¤,ŽÇº*Þ=a„p1±IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/sa.png0000644000175000017500000000074112233761324023275 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<sIDAT(S}‘½jTqÄç~d³›À"q‹€1FBj­Ul}‹T~4y}†Ô‚Ѽ@*›,T…[»UØÖä&{ï93çoa¢±qŠaš3௠@ÀÎÝ€æBhPxöði‚¢BÁ EJ wºB ¹üõ£Ý@F?G‘#Òi{j´¹²ã´™5 餭ëæxeé*€”RËæÖõ;ë—7Ž›£w_ßß\½ÑÉ;E– înÜû<úôâís§Ÿ RrúÑlÚë­\ºÒ+z‡ãÖít6ýQO &º@ƒB”kƒµq=©­®¾WÝÎ|õ­ê Ãñp¯Ú“Hñ¬AÁ”°ûñU–2Mfn$¶y–ON&¤§H瀢ËÍÛÍÛ› åbJéÏVýù¾ËŸìn1™,c‚UmÇïcÁöûó×™Æ@M“®ÒÃ"]âW˜Þ]ïχ€ÞÕ•Î ŸM±qU ç†N*z%+cËB-ª)*…¦«æk´˜Wìîuõ!ì$ê]HÍÂ,ùkJr{÷ÚÏ ®niï UD’Qæ ìå®?Í€ªÄfãš[0/Kvb8è}`@™[€ð?Œü<Ðe†hšÝÇIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/md.png0000644000175000017500000000071112233761324023267 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<[IDAT(S=»jUa„gï³O4Þ@‚"^ºàøÁÂti¢‚–¶K[+@{±±²‹h°±µ¬`$¢DÉ?³f,Î6ÃÇT³f`uXÜÆ±„ú´†ø>Va@}ðèÉ*€2ltK“à,»Ô$}¦W¶1%SŸ= ØýÁªT%ú‚éÁ«—§]¼¹>Kxô™!C+ÐÃ(cžV©½ÝºziÖùõÛߤ…Í#2ÐCp ŠÊ”î¼^<ÿ´]3ÛÙ^ˆ›ÝZµQÀ€²Í]NXÕ¹Ñbê{7S&Cþ?€Ê&­Šè¸IÝÆÛǤï\ÛJ8¦IKÀ’©P.:i›·ØŽ”ÚÝ{b¦)¢É¨Æ(Ï+bføy{ƒvKÇø¤9k¹ÆI^^šJa“øÂä{+ùɉ…Ë•*W¡Ê@¼tÌþûûîáCØ#ïÖ`ŒøpºdUc½)IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/dm.png0000644000175000017500000000106112233761321023263 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ÃIDAT(SUR=hSq¼÷QclųÄN¬‚ uñ[D¨2)# ¡Ñºµ8(X­ v”§%àZ¡C‰!ÅMj"mòûøÿRPo8î¸åÎÃ$þÂ8hÁ>´ÛíÔ½ l2!0qj€BÍ™˜8gØÙU,Ö‚ (\,°cqÌNÄÉìÓÙ°S]]_vNʼn˜ä¿ÏËö(¾zƯLg•³pÔàÃA¡úOz`íw|ZrƒO ƒí#µÆµ… "G¢‚§ex;bȲ™ÂDfV_œhžÛ¿%¿”¢…©c».'äßê6#/ØÓX|ã¸?v·RùÁ"Â<…=ÁêHv¦} ÿìùFó¯µôÐbƒˆ2™½ÉÇyOU˜™Á`ÉÑ—‡—rŸ[aÁ†¿¯÷5u<éóã93ó}¿^¯{Cñ|±Ü,³²8ùÚ:Tk¾;Ià ?<«×ß·JÝÁ£ƒ&*ýÛûKqɇ@TH‰•Iy*ë¾ló¯|òë+[|ˆ:iVf'j A÷¦{ÅDTÄÉÛ£<4¾9úóõã¹WÉ…ŒUUSu ‡ÿ ÙÑ+·±û8ªÕjt)Út;'þM,Œ`ëIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/br.png0000644000175000017500000000103312233761321023265 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<­IDAT(SM‘;h“a†ßþùB­(!ƒÛ‚CÁ[G” "âà% ÄIQ!“C] E±à¢´Þ@ÄËÐ *ÖÁEͦ.¶8R¼,M›_âwÞsŽC”äápxáåp†§ ÇÑÆþ߈¡5M#åÜÍÌÔUM·­ÿÀ©w jJŠEeâìDàðo ßµÕïLÝ{Üe°ðkïÝL¤P%jìÏõÿûàîj¤qϦ´Ô«ÃÃcÓVú@óÇÓ‹‡|•ëÕ U„‚ˆ5IoíOKœþP:R)ÜúS)ÕgºWž¹0txM¬«GŠ˜ ‰Do®y{Ÿ$.¹ü|ðô ¿ú$˸äü Ïo,ºG÷øæÔ|±¯ "fç’“ÏèˆîqKþ­Ðg>ùèd˜¯yqùëÖÁ®{ñÕ{A ’s Éûaês¬]»˜Ö~º,zõQc÷ösgㆱì—Z6»4‹:"èQ™¹Ô“¾¸²Ã¥ÏE¼ûãæñ ¨B%"„,,[E1!W”'¥¼µ‘ víáºÕyª)Uibjº°³m±ÓhÛ´¢“¿òC/AãˆôIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/my.png0000644000175000017500000000100512233761324023311 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<—IDAT(SM‘;,AÆ¿1ëìq'4\‘(t”®RI¨„ÞŠ‚D©Rh„‰B†ÑÕI®òHD.¸;ÂWãìÎìŒÙY'þ™|ùæõË7ÿ!@<<Ù^í}·[¡Fe¾ø?%áàâMŠªÓ‡±¦æ¦Û@ÀÞÜm½L–OMVPWR™«LÆÞzŽâ¥m-G¡ÂO7Ú•9è}2aKÆ%scÒqh¤újmÝ€Wâá1ÔXŸ2ùç•Òe eKó&åRj¼Biƒ5BŠèÂSVH7;5è=„äó+íÇgUËñ lÁ¹Æ3ÉD.¶¶››)êîÜS`k¢OEpt„Ê u4^óÕs)}M&I¨±Æíô-Ü#)žp˜ÉÞˆY Õ¢º­5¿¶ö|Ÿ°ì=).‘® ‰ß°~höÙZÕ1Œ—ëk’*-‹§Ó‰sægÒñ¦þ¢ëêêNc1ò•Jáð/&×u(ýûm wŸ ÃyÈ|ßÝ Uª!jä ×þœûFä?ºZÙ£ ‘ÔIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ga.png0000644000175000017500000000060712233761321023257 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATxm‘±JA†ÿ½¬1JŠb¡ÜCö–¾Œ¥¤ôlìì-,„<“"‚(‰agþwî¼ÓÂåãçãnþ;ØI¸Æï1@‡)dËóe »UèT#MÕU­"Â.M…²º]eàþ´~¦“F1é3`PXŠ•*í¼Å3ìdŸNbZ“4‰ÒÿÞM•ŠÔLi#˜"ó)Pw…«CÜGJeII>N‘‡ÝSt|=ÊXCR³®PGøXø'“‹Îîo.N^Þ6ª®¤ÐT;Ù¹W?>Ø¿»zÈx]|~í¾¯!ý-Ò«°J%Ê!jQ˜ïÍ€£Œ¢¤.&ªòçcA¿‘:jÆêŒ-Û„ö›‚b(é üÅP€æœ#h_ŸTiåIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/iq.png0000644000175000017500000000070312233761322023277 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<UIDATx‹¿ŠQ‡ÏÕAQ 1 (L£ÍÀâúú¢>Fêíób©ý"DìD¶Ye% #˜ˆNf’Ì=~Þ™QLc³ßýîi~ôÛ¾ÿc3ØßU!J*!0c«ÅÁAD5À—)©ÁÜö>ÔÃûp»^ψ"ÚÛõëÔ‰ ñ¤( \[fðu:6’ªšYeòôÓPD7"+ö/¦¯^~}]n6‹uþcõëá»GyQ”e9›Í"jxþùÙûŸŠ*ïž¹ÔݹðöÛ›èÄÉÓngY-‡ó#¤÷ͬ¸sù¶W+¹©ªçN½ÑÝèÊù€Ý‹Ùã£'÷®Þ% \–eý~þ}îà˜YTBM…ƒ*êÌ­yÇñ`0ˆÆãñh4šL&ÜàÚ#´½DXDÓ4%¢(ž_ðç»ûÑŽÌ·p`Á‚(›,ÚÉ‚ûÈ釟˯ÓSןNe­³p)8Ê“¤Æ(3³ÓùÖòFûÙâþ tŒüÛ•­ŸÊ¬{GçEà"8š‚džRF!>vjfhl8}nöàüÜdµ:Üßœäi”F Q¢DZ²=6Sú±¼Ñhµ“•ÚÚR½oî̪ox/òoCŒ®3O#õ|iðPôåÑe¼ùY©5š×.4+ÅÎW ŒõoM¤<õ¡¶}ëýPv|¯Ì$«h¾«å«#½xÉÆpÎÓr£{$#å7‡ù³ ºúbºÓú=1n”™LÁK¡ïÊî#p—öLà0Ï@ÆkÌ/IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/pk.png0000644000175000017500000000076512233761324023312 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<‡IDAT(SeQMKQ}ÓL6*R‹˜T0(CÚÔÖ‚úþñ¸Ím.]»‰þ…áªÀ« m‹$Ó))"±ÑfÞ}_Ý™I:3\ïÝsÏyçi:!!¦0MŸ¥É”I\@¸€ùÂÀ¤™Äjêfý¨>c3N„œ Î VÆdXg’µÏÛF4^)%¥Ά_ôKH¡ˆJ[™çqÏ0 ØgQg)êŽ*—»Cu·z¸~àQÏÐŒÚ^ÍŽÙ¸‰tµDæÀ©HÀƒ¢]̧ò—Ã+*iÆÊV år@  tGà"±œˆé±×é ¸}¿kÜ4îpÅKدæ@¼¿a•|(¥]§Ûwûè'Pà˜’” „à~—ý«½µýÒf wÁÍ%r§ƒÑIþ,dhEê×§ŽëoÇÍxó¾ùðùà Ÿ ñ{‡(%MÓl˶t‹©@½Ýk·žZeT_Ö·R[B TÐFã‘ ásûd›|ü{àŇ_!?‡Ê@Œ6)IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/py.png0000644000175000017500000000061112233761324023316 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATxuŒ½JA…ÏÌ®Cb# ’ð1l-ÄÇ1……¥o!‚XßÀR,|…‘@üOPwï=×ÙÌâÄÂÃá›oöÞYgÈáªÿÓåƒá0ÂHĪš(TL"V×¶ÂùhT¢‰Ùä!®ÆÆ¯‰m«Èʪ*ºë÷ ”X,,0:Ì öä ï9›•¯ E¢hW`¿¯.Y×aïƒAþs³*x1–’ÎùûÙÎóÑ|×>^l5€=ɼÎngÿÚ¿ÎÑéþÙ%ÝÓÛçzXS2½`;ŒÚ(h( ?yœ:ôîŽO¶ï§µkÁ’Ö0‹ ©bƒ­pqzS¢¢¨mö¼Š"êE¨êD ‘f¤J!GFÅ-T™I²·×&?oïVñ Ü¼IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/td.png0000644000175000017500000000065612233761324023306 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<@IDATx=Î=ÊSAÅñ3“ë},üð4 ½ÛãGeï\ÂÒXºAR ")B¸wžóœcæ& žî7gÊí«o‡c ÕœêÏoŸÜß“„šª¹Ãô`¹ÃïCûôá%åñ‹7ãi´aºX÷ÚÝ÷;%͹Ûl†aèôן™t‹Â¶W=Z²S…žæø¹uÒÑêzM``#Ó”#!§Á~•.)…#ÌPFeè ’¢L)L@t/ÝeXôÜ$vìTöLšQ$ÚaË —´BËeå? ‹© aÿ_ Á΢)‰s$;˜ÈDP¤IX±,¤EÊ¡—'t]h$tPؤ˗’æ2Ï-àÈLÝ>ƒžg¬î<*«@u†Ê؆ç—Á+(xúû’€€úýë»gAB+¸Åôµ ü:"z’|[ŽôIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/dj.png0000644000175000017500000000073412233761321023266 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<nIDATxEŒ¿jTAÅÏܽĽkE+ (Á"mRØIêh™ç°Ê«„ľ6ÛÄ€`° lüj“Þ(7›»r3ûÍ9ÎŒ2üøq`ÎùÜá½|‡úúsè $ÌàfìŒ>âcHž+á$µ>âô·Qbbt/vÚÀ|OëöGßpÑ©‚Ò·1;ÌÚwçÈ4`éîßÒ‡¯ø1 å«f0Ä àY„„½=M&÷nâù²ž.©r‚WqEÏËeТ€ãcíîj<ÆúºsZ~¤¿Õ÷álj‘BvârPáÎÛ4ÐÊŠêZ««(›á«‹ŸM5õôS&ǼxcÏŽJ’.ž][pry²}¶}p~¿¯ÛJ6Z( -Ò ×ëIÚïožmŽº‘wþºÍ¸ô–Á€d$C…GŒÔ(—ï;ÆäéÏu(±ùšéÈ8ùöÇKb”d «î±u°Õ lnÎÿ³SÖÛ´æbxesàªeÖâíÖ V·‰dÊYYXñ¿¤·›¿?wãê0æ…R±eQD‡Ãc½BÛ sÎ/M.¢áö³§«G'ß1ôéþÛÌ!Ý9:tÒB>-Œò×/}yó®c"áÔ|̬lFys›¸(v€Ó³R÷.ï:n òý+rŠ *#45ì=Æü‘?>qíÉ]€€Í Fâ/ܹyˆ+IËÞIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/bi.png0000644000175000017500000000115312233761321023257 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ýIDATÁOH“qðïûºd¾¯nc¦[Í‘eÒ¢ÄC Ò!úã1:u)%²’.E§ kŠZÑ¥SIýÁNE&D‘4ÃÖFJ¸µÿmó÷>¿ç‰ú| I$ ¬•þ.ÞÒ®@€‰˜Jq½N" 0PÇ?‘Ùyv•ŒÓá¯g¿¨.,Tb±†¶6hMå2ˆàv‹ÖN:mŸ²O‘¦ñ¦s°h´Xþæ`°3b÷ ^=§l¶õ܈;r°ôfV¥RÁ‰»Ûzö&ê«·>Þ\œ]tù=>O£ïÁ—ho{ßHx889)"Ù\Z9ˆFå¿{+Ñ™äL`>˜Ä мc)››¿Ršˆp&od‹HEÔ™¹Óo×ßuúÂbê0«\×¢Y´å¶©oÅe)«Ö®H[w¯”jkåÕb­ìµ½Ž&bÃüå&MB…?ù×ö´úñâQ.¹”ßH®=¾¶{´Ke bG³F3LÍÚєʧ:Z:ž NyDvŸ¿ì í÷Cá±–HìØ\·ßJvÙ!† 9lTÖG#cG¼}ÂòóÒ( Ãýšˆ‘¿­ò¹Ð³×ã‡'â¡÷ÑÏw° á\tD¤:ÿ!ÿtª¡u;´vŠEvÓ²„h+ò_°‡Nð\õñd|W¡ýSoO h`€0À% 8:ýriçæ_}h&tU¡EIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ua.png0000644000175000017500000000054012233761324023274 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<òIDATxmŒAJ$AD_V3̲7J âe<Žpí!¼†g„¾;÷º°A+ÿ°>$HCàWð"wf|  *Cƒed3âö@¶ÜÒ„H9ÜB›ÐÔÓ!÷•ôÃýçÌðvpš]ΤÛ=‡´¬¨Ž‹ÿ/ÍÉ)ÂDÙ,v¤Kƒ¢€f¥[¨ìoÙ#µÌl÷Û¿—K~§R•Ūªî÷îßÎ[¾ÂîÆ~1 »ÛËÉœ¦«÷§ý,Ñ\ıtdCØPƒ QC:9ƒ,‚L8-µl­C@eQ}!ÑÏH(F2nFÉï/øH‡nè 4]ªIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/ru.png0000644000175000017500000000053312233761324023317 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<íIDATxm1jÃ@EßZªœÎM0)ܤIák|·¾GN‘+¸ð]R¤pÜ™@D`gv&;¬‰„ðçóõf¤¯IÃàŒ2³öhd3©ÑË%€»C" M•;÷…Ot¹üD¡½Ÿ‚ßSJÉÌÒnçû½_¯˜QŠ—RÁ+¨N3¼Z¥Ãá»?l»Mç3±D]$œó<7€P¥Îÿ…œÇN®oÕ…v4KÆOçÂQ8Ò½ÈÛoþ²(©‰Z–H‘d-•µ<èÓ‘÷þ:ý0ù¼ÿó*hIåùzƒ…(ëµKlQA$+-«Ki6HØÄŒçŒÌø866T¤Îò¼Ðlj‡|¢UƒªwšÒñ»jÒ«/óÕí™éc“Óõ5‹ ? jâ{c0¤Êª¤V}^“c‘G§=jî³L2Ç®ÒðÍ»Uõ>Ù®bÍK¯L¯UK˜‡çìD9‘T®'ùò¥ÕóìF‹µÀ‹Õ·s…L¶òM¨z®ó,ªðÐ"2Çü¦Ç&÷t†FKþÑ_ûþäbêûîWjV$` X…ƒ· lvt­\ 'olù4õåUvï'ÑžƒôˆQ±ÖZµÖYÌÉ Ê d€íC¥éÿÒ „¿ï6!;aNIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/tm.png0000644000175000017500000000077512233761324023321 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDAT(S…Ž?kSq…O.÷ÞܤöÏ$­8hq(HÅÉQp”Ž."ú‚¤»£:ú œAÐÅÁ©´M mÒ`4Xª&&5¹ï9ïï:$¸ú g;}?jtÛoMºDEHҢߥIØiÜ»±¶}¸·~ëATŠ*IÙD£™“"€ >ðt”g¥BŽ×õwOïlÐýùö«ÖIÇH)RÂ'‰ÿ†Ùj0©ÞiÜßztiq¹yòå¸ÿƒ¢‰&M’b >X3ã\ŸÌͤÝö>IsR2‘’œSƒäiâ™1«&›˜‹š(ÒåÁDƒAs+×®¦È.\¶iMf2£&=rÉýŸAƒÃF|ö¢õºç–%ÑI§\ò —ww(aãYŽóÀg`ÿá/ ÐA&(&á·IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/uy.png0000644000175000017500000000071512233761324023330 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<_IDATxe±ÊA…ïL&c,$ )$ø¶–‚/7°Ô.`ãè+h«j#DDì,,ÄB CT%’BVY„˜Ý½s®‡Y÷ç‡ÿùæœî]W–¥dâ=™mwT‘5¥…sˆý™ºÑ£wÅ¡JãI M¢1%;w߸¢(b\xÿZ„Í%ë]3s&v$tÆ{¿ü¼ €½OfIdéL_­ö`@þ% ÊÎ z·¬CŒƒÐ›UõƒâõÚú/?–ÚÀΣàH™˜ŽãîþW÷³ø=ëº1³~ ö °NÈ–ÞX~ ó§Û«—}¹×<@r?ÒÀ¨IHF£ÓáÆ½uxøøût2Üþª»Z‚ìbâT|åÂÙSÕ“•û´ÙŸœãrÇ?Èÿ èZá Á½}¿rråùí›à”ûÁÈÖ³Ì=o¾˜?s›o;eߪu¢Ù³òâMŸùÌ“”©á¼‡ëIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/lu.png0000644000175000017500000000057512233761324023317 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<IDATxuAJ3A„«“Yü?¢q@Œ ((‚×Þ•xº ¸ðžCOàÂc¸r Dºß«rúÉ*õЦ†N:?Ãç ’È[ôdÎÌ…, Vm0{Çí€È$Â\=Ý“sè>°"÷Úùä¾Á"£duo Ã)3¸Å"FÅ*«”4Þ‹..ut‚ݺ–WºkI«¤Ëª`4âá8M§Ó¶mHBܺ¤”º®kQ$dmÉf5BÜú$©þpý¼uuªÙœpõ¬5*ü¯.íÝ<›‡o_¿TÆžµÖ“•K©ÅÁ&>žÐ`°¿“Ìá¬-L!° 3¹D SºûÖ<¾ä¨!ΠU ÿð áÄykIxÃIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/fj.png0000644000175000017500000000106712233761321023270 0ustar mathieumathieu‰PNG  IHDR ù€šngAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ÉIDATxM1hSQ†ÿûòRcJŒÑ$¶i‹ÕbÑ¥­:¸¸T„:µƒT')¢"+ÑÍE .*Š‚N± TAi‡‚‚ÏÍj—ä¥Ñ$¾÷x÷Þs|÷µpøù÷;pîËæÃRùîçòÎéëJ­÷\wcròÐDãJEâ$‚Ähߥ§Õ®Rà|bÏ]¥lqû‚ã¯åGíB°¢¸´É;ó-ûžz*œÁ­ï^%êuòýŽ\ÎW8¢xéà2¬cOjS]!Ù•ôÈÙézÕW,vRý_kNs‹ÔÆž­\NúÍü)åÞ—èíŸg­êØq‘J=ùb¯ÊÎo^òѯk÷ž 6¬˜¤*œV¬Ââ1ìüÐþŠ›Y¶ƒîAúõjbmßÐða%ëLšqãvr»ÓS…ÇÏ0fáäOëúÖ8ªÍöÏoKbùüË«}®£›-¶߇[š±’fÆ‹Õ608[¾YÈrmj¢ø|!h¼ýaC‘Ò cüø{™<÷†Oìåq)|ä•u „€$¬\º½#JMÂ0™vÅÅû‹‹´Îš"™ßæ%4e Àÿ–6Šþ8FŒ vÖIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/flags/uk.png0000644000175000017500000000110612233761324023305 0ustar mathieumathieu‰PNG  IHDR ù€šntEXtSoftwareAdobe ImageReadyqÉe<èIDAT(Sc˜4sߎ«oª§Ki¢Ã‰nÞ}»6¹qMBᙽÍ#m‡m̆¨Æsó«çeX²âÔÿ«þýûûá—EnÏ_Èþ?¥ç_+1iáåÞ¹Nžxü¯«æßߟ6]`Hj9¸çä»ÿK—ÿ?¸÷ÿÿÿmÓ®Éÿ©™ÿtIߥ/‹Ö|ïî²ç­º$i2¤aᆻu¯>ÜwÿOSýˆ‰ùbäfþñâÂ·ŽžË‹šŽêNd:ä4úßÏM ¨ì̵— kkÿOîøŸ’ò?>þdäÿRŸ®®¿ìíZZ~71ùª§÷U[ûg°[«¼lmÿ˜Y@Ìâ¿ÿþùûç÷Ÿ?'¯¾`°ÛÔ3ç|TÚŽ+Wßÿûægr~<Þ0óM#œW®Ìà)°|%[±-_©ýý Mסm•zpë”{ÑÙdñÁWÏ_×Àæ¦f3ìîâÅ\ÇLjx<ýÙ•” ­(“kWŸÜÆ™ao;;º"/Ž8jŠlÔt•6îÉKC´ ô“i<Æç/Z,4>úfüKOó(ZnMøìÍr‡éTšÏá.RÀûSãoZ˜ÙÓ¼Žï5Ðw%å]ëë"·e“qß•YæÉí1/£á!škwÕý€\iå¦åÆig‘ÞlÜ8yû¡ýz‚Ù–ó3‰dêìM2LbÖ@e ›ø¸@{óî\pæ&=£ŽÁJw³¼FdF(>½Dƒ‡À¯Õ!«Î}þ÷'+'øqnC1ƒ÷s²IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/perms.png0000644000175000017500000000107712233761325022730 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®Îé pHYs ‰ ‰£ÒêtIMEÜ /5Ùß8™bKGDÿ‡Ì¿ÃIDATxcù0ÅvÕ5—Ô¿¨Ò8¯²R©YΛÐlüßì¿åÿØC¡G-,ãÿ†gÕø¥™0FtùïñßýÊÿÿW;Þ÷øïü?y«y„´3†ÂÆ®ÿ}ÿ[¼ÖÔR±úêT8q’ól“e wæ9Zÿ×ú¥ýÇæ¿ÿûWÂlN›~PfGSø_ÕîEÀ{0tøï÷ßåöeqËo6ÿ B0Ì ;äõ? =ÿ'î2±°ýo÷ßr †ÂºÅ®ÿƒ Ðå÷ Ïz[ K-`(Ü[àð=¤ h¢ý—3 N[ÿ;ü½rCá•ÿßÎxÿ?uìÿç ‹/n@×ZLÁì®Ç<þglòÚÍÀ {Öõ¦P¡É #¬ ƒ/e-ñ*üúô.Ç?ÿmÿë_aÁ¢ÐóFÚ"B RÃÂýÿѪUŽ¡Ðå˜û³¤%î»!¼ÝŽü€f}SWÆPè}3}1Lá®m»þ»ÿ·ù¯»C¡ßù´… …P¥®qG¼@~‰¦Ðw¯ûÔÅÁ›"Oæ:=òùïwMáÓE^gsg~˜‚º"ÿï½xñq#ŒÞ÷?÷?š¨ÔRJâãªdƒfHIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/za.png0000644000175000017500000000052112233761325022205 0ustar mathieumathieu‰PNG  IHDRºWí?uPLTE………ÿÿÿ...***,,,)))***222(((((((((111===UUU]]]ZZZÿÿÿÚÚÚ???ÿÿÿÿÿÿRRR===666LLLNNNCCC>>>999@@@???<<û›ÈÈÌ®0øø½¢•sIDATx­ÈG @²é½'»éøÿÕ ÞÔ9ûBš~^E}±K䯿yþµ®—ïî‡Çê—LÛ‚¸lSò¾,'ŽOœòLeQVõŒ8×UY¨lÚñl¦q^éèó{vý}÷•Ã(å8°¿xúA9IVåIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tags.png0000644000175000017500000000071712233761325022540 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ 4 ¦Ü<SIDATxc 0jü‡³Ÿýbdø¿“áËÿð[GÑ2‰2À °ÛÎ¥E·DxÙv¨Û`(d`ˆ=¼ñ­Ð9~6aþÓwöO¸)ðm;L)Bá?§å‚šª÷3ð302póož¾½¿ÿ&?†RFÛÿïöþÞÍS,*ÊÍðá#Ư}3= Õ?2ýò¼yIá/†ß œ < Ü@.6¥p7 0ˆ•qB¹˜€)üÄ 4‹¤¯R¦ž›?ýƒ¨Á«”É,·§ÒUµ&¹6§ùyØçÅOâRÊôaÞSM¶Ý欟¦?{C)Ø÷Ÿ>ôÝ]º€u;翎›V5`…¨JÊO8:SøoïM³\Æ“Hfü7?yÊñcÀÿ ÿÿÞ_8ScòÕáãÉSÿÍ!òJ!ÊjÃДa*u»sþÌ£® ÷ë0e8”þ¿úßHëþ?TFSk}¿î˜IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/edit-small.png0000644000175000017500000000024612233761325023632 0ustar mathieumathieu‰PNG  IHDR J˜Î›mIDATxcøýeƒÏÚ (Em >V zô'(Ê_!ð(èÐãåÿ `PÅ ‡@GÁJ È … @‡ °op@Р¡Š0SK‚( lfÞXâÇ‹ì:ê’J&üø™nIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/colorpicker.png0000644000175000017500000000115212233761325024110 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®Îé pHYs ‰ ‰£ÒêtIMEÜ .+:Ë4»bKGDÿ‡Ì¿îIDATxc =QQªTÚ­Øb+§)Sž,k¯À„¡L±Dc§ß’ìuV‡•EL÷çmŒZn°Aq-†BïÅ™k£–ùí´¹a–£®nyßc_äò´UÎG”ˆh 00,ï³¾º9ouÑ‹]AÉùÛ‹ÖD¯s¹¿®L)Hû ê!eÓŸöGòWD­r?jýp´íÉÐõYËBöoo€*S‘Ñ;Ÿ½>l‡öeõÜ›K½6&­.[Ÿ¾Ë5cÚêäU~»-ný×*Ô\Ÿ½%n‘ëá¢-FuV½ž=c’÷6ÛÓ6[º‹¢–ç­ÍØ·8`[È ÷SEk£WDïŽ_«qcvÂÁ¹ë\íð Xoõpy\á—Ù[Bަ.ô9–·Üm[êNýƒ>%·+Ý9Å5Ív¹ôÓ®ð?ÇÿS–æÌܰrq{ÛÂ5g­Œš˜bòckG^bWØîÿL°@ž¤²Mù´ñ^› V»MÏÛï3>g»×ôšæMµÚ7CæOŸ7ÏæXÖZãYkýŽç­õ9ÂùkíŸZ}ÝoõÕôö/?¸Bç“é ‚ŽApàIöxš±ÿÿ’¤ƒ¶wÁ#Kbd…&Ï5jL_ÙÞEŠ<σÞG]žCñ+vûfýßè¿õÿ˜=H ÿ¯û¿çÿS(~ÅßþCÀlÚ%h ü( ŸaIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/problem.png0000644000175000017500000000110212233761325023227 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ .;'|$߯IDATx•Ò?ha‡ñçMÞä.MbC-(‚Qˆ‰ñOJ+â ³»S¤è TÄ¡ºwÜœêu*R:t$Ð$‹K Ã)DÔˆ5M¸£oòzïq‹ƒ} Ûß'ß)üo’ʶndSW©Ð›v[ÂýäÿVêé7V-ƒ$ÍÅ!Awr·×&*©ú0ûvv>G??ÎꬔXs“{Çýl‘,Öêv³ %Eþðª[9Ùûö vŒ!Šå_ë¶!°`K· s8H4»«ÂÙ]ÕHr„?wlS+Ū$oæûDä‘«©OÜ Ÿ†Á¾ ƒQ‚"2¼8®YHâ¼sð¹‚Ib…wõ™„ FWÀ¿,ˆ“áÝÀ|?iFàà¼L`x7pþ‹".C°\},'P…wˆÞåþwâ¦Üi¦ŠÓæÎÍ–ãŵ=íÅ›KÛß/mÄL{k{:ëÞPisÚꈭQš¡Z÷œ æ‹úËï®ç¥`ÀÀW´Jv ÍHÝþðè‰hƒ$J´õæÒÓë¬À±±A ¼çãK›!#^4«þkwÿ#_çÔiÙ?õã"Yû~Ä L¨MƒE¢?.Z¸Âç¨ýù–‘×q2ÐIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tabset.png0000644000175000017500000000017412233761325023061 0ustar mathieumathieu‰PNG  IHDR !Ë)PLTE¦°±¾ÈÊ¿ÉËÀÊÌÁËÍÂÌλÅÇ·Áïa¯BIDAT[cd`€BhÆè‡`èÔ‘ÀX`о3žIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/add_group.png0000644000175000017500000000075212233761325023545 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ .ÀnIDATxc gV«U¿§þ^c³²B”S!·GÃoŸï, ž0Q&L…üIÜ ¼ ü œ œÎÂh åeä{%`¦ë°1p3°1«‚9šB]+Ñ"k¨k˜ØÁ4PÒ@M¡†8'ƒ%„-ú”&ûÓí%’BÕSj7v•32ÌÛ£zCu6CèÝïU RgO#ù:êé—7O¹ŸI»Ücý'û¿€áõ¾ÿ © ÿ_3¾DRØpA`±ì»Šó’?®0¼ý “üý#H*rìþO”±” 78þBÿfÔü`* îþäq§×ÐJž•«†9“››A(öáÃW†ŸGÿ”Ý9WøŸåƒ±¥+c)73(€þ2|aøÅð¨øÏÆÅðЪæhá*âB¸ XÙo ÿ¿>†Çµ‚Ág.N´8ee)c`•…+äbþ Œ4l€4ï~î~Ê@g?Ãf ©×³çIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/navi-subnavi-active.png0000644000175000017500000000043112233761325025446 0ustar mathieumathieu‰PNG  IHDR Vu\çàIDATxcøÿÿ?O<â£ÄB@ÌÌÈÈÈ€†áê5líÜé1#w²¥‚g²: 1nñÿêeŽ;2ûÌ5JæÚ²Òp ¤aÂaŸõkœm2Éè1g'¨†×»\.˜ní]mÀA@7­w¹Ô` ÔÀL” Ó›yÊÖ5ÔP·Ê项—ì\n>¶  q¼*—8Üѵ•˜ÎÁÍš T,Ä,8ƒµtží55c‘Éìœ,ñ “AîÇåéÝųmŽÉk öG‚Ü ÄLø‚UOV] ›‹—-¨€¦]Žê'¢îAeIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/delete-small.png0000644000175000017500000000021012233761325024136 0ustar mathieumathieu‰PNG  IHDRľ‹OIDATxÚ…K À0=Es+Aɵ³*9Í…î\ È›g>âîó°TuD„3Nr3Û‡'Ùd¸Ûþ/ÔîÉV‰*’áÚB{EûÈö›seo}£U8IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/checkbox_off.png0000644000175000017500000000052412233761325024216 0ustar mathieumathieu‰PNG  IHDRóÿaIDATxÚ¥ÓÍJ„PÀñšl‚ŠÚ-¢EoÑ;´ìM"è¦eûöÓ"qŒÖ‚ˆ#Šƒ ¿u%‚èBÌÅéÓÐ%í.~»ãåž»“Là3û1C š££st¸Û'‚ \)Šò¢iš®ªêfˆ,ËïËåÛΟ †躾IÓêºUàÜ×bñ|‹ïïX¾´, º®£J’V+þg»Àz­\Û¶ mÛRõžÿxÂÀ9è¿ iª8ŽÇUUQ…a8(Ë’*‚á€išç9•ïûã,˨\×ý$éÂ0 À= r8Ž{Ø#±H¦çyý1Š¢ˆX$" Šâ ®ë뫌¿úɲì=Ο"fÊe:ø}™¾Ã-¿a±´BIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/color-picker-palette.png0000644000175000017500000017252112233761325025632 0ustar mathieumathieu‰PNG  IHDRsrˆ„­`õIDATxì×Ýj[GEáo~¢¼ÿ»Ö¶lÝ›˜"%PÚÏ ›5Ý-æÄâ‹1ƒ³TÃQ„ƒn 3P Â2âJ|ô‡,lÔâk‹?”p”ãç8)9ìíØ‰Îÿ[_¢ ‘;™}—5xåFëZ¬²,þÇ„‹=Èy*H°î{îÀ9_SY:ÿè.©fO̵?Ò³Y¬²,þ;G9ÉEÂQht—^+S J¦†d Š<ªQM; Š}(¢ÜꣶxÙþ•Ð,VYg9Nr$rב葺{Lòñ€9?³¡“l %»ŸÏ­^y¯o›†Å*Ëâ$ã$' !xvÒìûnÁ$íC~¹,ý™ …Nm›ƒrךΉ¡\kÛ¼Ôµ~Å*Ëâ gã»q”Aæ¬h û¾MŸÆ…æ'AQ3tŽè³bSPÐùŒŠh?[ÝxÙ¼nn5³XeY@8ßäâp¸¯Ièç=%E˜OsbÔn¸—EèüZQ˜Šµ¢U< roŒ[½m^ê}S‹U–ƒ³qqøf„ýD#ž=[ªC@ïngIç«Î¹ùͲ4“1_)JM·4O*Ó*×úëæm%f•å åðÝ8³s&ÌqãJN€-ù>vvÿÿÜc<>ljj*>'µõÞ>¨Pt‹´ßÓDèsfVm<œ6Ž)Œ&(ø˜qĊω\¡:îr¾‘,c¯…¯ÒþçKx6B{ÓØQšžj¬AÁ»ø#wUŸW]¯;b~ ²ìÿ¹OÊòT*™ J¢NQš(ÉâîõùœÅÈÔ‹ŸG\¤œG̼`ÍNS1Ÿ»ŠÙÉò³ŽxN@y®…ì Naßë‡:>o6ƒâ :,üÿ±nhn´ü¯¢93¢ šŒoÏò¥ªô ©º«úxÔí>ºÞÉòS¸ž´eÙðÉ1á"ô "Uʽ-ä)Žf(¿ì,¬‰ËG“ÅGBc éxø¼`Ù:•¶¨5[Q+qó5bj‹{«>Þ©ìf'ËøõDù•.J¤ k¡ÊEªÑ‘?Ìf%PæÃ ¹~¡ÿ˜ v—³HçTŒ…®lŒàƒ¦‹Wª@ýªë¢ÛUŸWí_;Y~ ‘òR—§U£‰Ù6Å&Ô¨ñ¨׃çŽË‚ñÚýÃ+-Ü:Ãæk¸&dÈš$ÁõbÜ%y=çKvŽU_ާ¥˜ïÑ%ídÙ¿Úðø™Ùh2­ÝøGZÍÈö¼V‚VUJœMb·ÐQßIhG o~k82 ƒÚæÍ]§ŒÓvÆ‚Å(S¤«õ>è=~W|Ùɲ3å….žh1FdIX¢u…b}Ìž-aqµâ;r5ú¤LŸuxÁgŒ5' 92r&:e¼ÕB#Æ·­èÓ–ø (°Næ¨4¾”*EÊ[ôánOyw²üÓ_Oµ¼Òå²qÄí×nˆæ“ l·HôG¤L/[ yµu|·¥8\ˆ›ód™Ÿ°é;(*oAb¹÷ñ@4Qàcè"ÀM¯h6Ü×{ óé¨ýk'ËßýõJ—O´”((ò”,˧L¥Š‘? `ù¥ÿ-.ìi#T!>æþhì}=Þ(=<¾ó|BÄy3ïâù† fZ¤1bp¹V}º»—0û×N–?óë….žë°(S˜d‰Èà.œ3ÅVWæ…Z1vFl²3•-¼œ@.T1Tç4 þ®Üzi¾Ã’ç9îL°ð”Pjôˆ‚#4G ¢K•^³X§j•$÷JEÒ)ßýtÔÕΗ,ÆÂÛòR—Êà`Ká‡|ô‹…AÌСHIå\ˆ[£c¡3}SÊ|™Ú"`–` /™òú‹{‹)Yˆ:“*„œÒ(MƒÕÚ‰—Øš3—|XòR›ç"YX;hi®‰/gKEq½êÃõ/99ÚÉòü>©} µfpYä²/ÚRÚ”Ô(“=—õØ…ú¥ ˜Í}|—ßõ L… <1ýYDïWΡç9‹·ÌJƒÛDm Œ% ´Vä2u:r¾TÜ"y«Ì›åëºH²lj¥õq·5?^ÿJâe'ËAË[==hÉŽ’Ž2ø„ZanÂËÁ€»¹óo—-f‘ØLj¬©*8@dd±ñPIžé²HU«€9Ò=ë†Ò&(úÊhMzOâ@ùâdÁ·1§b™£"›C£oEw¾† UÌÍQo~µº,ÏtùÚ¥ŠaEsOT[áÞÇNƒúíÛLÙ2O[lãÖgÏân¥¤m÷"Æs–S?ÏßX`dá‹ If±Km}½9òm°àO§#¹'Z%%P1æƒpiˆ)§±ôÏ*^v²dåßôü œI“\8!¢*A-òE*Œ`|éÖ‡>}¡èÄô'nEÇ]ÿ•dˆ[ÿE¾%ïáîЉ‰LëY9¸;S.tIP|·Å–\¸ïEn>-ÌQv º`qsDI2G æDì»rq7t*€›µÄ™}¸Òݺ“åg;þsx­g‡ØUG 4³Á3ú¾ÎO¦Hʤ'H|‡k,j 1(8rî}EC\(&U’´‚8$ MÉ‚K[fÁž¶øìøH %&ÐU z=¦ÕCVÍ`áèó>(jë—ªµèý•®;Y~’Ÿ0½Õ³':SfpaȦT3)3YcÉæ}Οo.è(nQ’lµÈà"E'ž¤ý‰>ìí£)¦+˜:×5‹Y»~fIb—D úö³>ÚØÄ`Åvç@–3[-Â&Gà 0ÁKº¡ˆo:OD£tuwÏ—Rw²üØam~£ç—Z¤´(AtdÅ>§! ÆÒ=GdÂÄY’fdA4‹™Ñ_¬(Ô/P%|—"q8Ez Yllj5:@ÓæÉàÙø"væ'Ñ,Ð/<½J²Á³M”}ê¼Àx`⢎ÇîŽz÷EDz“åGki‚‚/ú ¶_@F¹b| |0mQ>7bÇni+¸¢âX©jhŽöŽ(ªT±ÀÂÇêùœ%C¼˜åñ ùÈûxßãÛŠHe>o6y2î»f±ËÑb nÕDÊXA“ÌZuu£÷×;Y~°°V/õì¹.ƒcÄÚ7YHœjQ.RÛ€<ãÛ©-7åZ‡—Ž>•!®œ¡M°b7Ìn‹¼o(ñcÆÑNÅR|AŒî†À‘22x)ŒE*JªHs+,\‚ÞÉø¹ôãçÉ¢RQh°à_PW'ȃ²¥u>ßÜ/ÔÕº“åÇ8´Í€¶÷ªdYcûµ£äÅçÍm?ŬPÉÊXºµñs·5ǦKGLöÙ3YcÖÁ‘HœS,»ESä™.¥Š“%õ#¡1y4â2‚€GßÖ‘„lE5²¥ó‚…·øLñmÝb†›¸hnð ˆ$ÊC|YWýþå'œ¥ŸpÔFËgŠ÷«©[`5KÜÅ®:î¬IK.>cžÁEèØ<¿›¥½)jõeš $Ï ­.Rp9' d’oâ’,žãÖviý¶æß.Ño*¤PäÞ­UetÖ¹h¾}›$S1Hp=jq¬ Í%PPlÏZôî³n;Y¾ß…ý§¯ôä¤)r6›€X°–‡p±"˜ÒVû%™ëÉøÕ#>²ï³Î † äL­t>ˆv©1¼ìAÓæÍc²¸6‰ËLŽã»ôºÿaÀ×:2G%ûþ¾rÁt%Â$¶o…&Nè"†žhæ€Ø\%Õh¾Üê/;Y¾¿㕞oÁŠqdÏV‘Lˆô5ˆÚç· @åÖ~kn2lfQ=µepµÒ k}ÒL÷Ð.UkÂ]þÃßç,~qéAFà®K&Ò6ÜÉèøœófî³0a!zl®Þ ¤KI¾MJ)•Ò(AýñYW·;YþÞ¯7zþLOŒ &[”üµ*Ñù(— ‹Ã…f§$å8˜}¥£h̘·…èVcЬXøº ïúhmS¤"H $ ‰—s7ä#¡£hæ)àN ¤šÉí.,Ò(y8$²‚‹sH˜B§d n£h“æÚ²kßja@ëS¡•MÊ9bÆjÅ.‹>]ëÃÕN–¿ë땞½ÐSÐdš°)Q˜'’´:؈3-#IwI˜.;Sè€&jøø{ºtP+$ bZôšà²1f î´[õL‚KvÀÒ"1[’ †àñ\¹lf‘jHxŸ…Ñ Õpç+ÿ¥÷D®SX€i“”(Îoô£fA¿hë—1÷pùø7L£w²ü¦W—:l@Mr–æ Ÿ™%¸&Žù¾=ߺâ3æ"%^méjEíñ­tî·WÖø{Â.u!n‰wÇ…<±•pg•˜Â¬gr–¬°ƒ±.Ø¢“f2f‚úÅ–Ü"•Ìñ3ú†%È\¢`A¾»ý—ªÜë'>ZÇgÏÌ\8Zn˜@MÖ”2,š¢/7zÿYu'Ë_÷ÿõ^<ÕJ†&[íaŸjeb…’ê291ܘ9ª,®ÉÕ,Š”J‚Ø?á¦Gý,üWñ 4mÙdvÛ.Cõ´oHÏYüÌeE“Ë,ä &êP.q{!#!ÍÍX´µ5ÜÔèhìoèº`áhÜ. (Á Ãà”«*"¦¸xYµ-ñÌ¥èæ¨ß?þ'Œv²äÓt¯YqÍÒj™l/òé±­úhê‰â@º1*‹2OrE›‘Jml⯡g+]¿&¦¶!@x€¨Å%¶áA§ƒÂûìV!Oð¯>FE ‹HNÈ;‘¢‡Ê-IY`£êv R†±ƒÇi‘pi Žf_f R¬ca­½^Û>õàF¿ M€>°6åb¶¨´ùôÍ­~ÿô§Âe'K:íÂ]ê¢éD¶­æ¼™ þ¸åÁ-  Qdå)@ŒÜÁæ èWZL­$S%¶Ø£¨U N3DEÜÍ¥xÁ^\ëÑRØJ `4' çêØÄµa3›&R2'Í8.”‡K²)RõMnÇõ[-E¨«®\¤"‚c:-*•æd1Äpuýµ¨2aÁ¶‹­ºüÏ{Õº“åOS+/žÜc%Kôq)\ö#!ª•Ù1¢ÂMÿ~5à€ª€)&OñÚA¡x² ÉÔJij…B戴ERUªíˆs³?ý„ha|ëñJ˜REµ5I÷‡fyì?G’ KãbfpÛ­º 3]Æ·–Ñn—6„îÜY]¾> È4×§B­ŽÙváòû‡Ç(—,¿éuD¶„KÂ%X<ÁMú‘Ü…,°ÚVK°#¨IزÁ󚕱ËÏ•®t$Ëk±;WLÝ"&pI«mâÆ%¶ø qƒ©P#ÜP%,5A³$Øm©¥ŸÌ\²*oAµRÎØ‚\ëðîh·ˆ¾ ò¤‘’pY³Ër¢r‘VvÔ…²~@q޵¦´y³<Á¥r¡3ªì]ÝÜ+—º“åÛν< Ê‹I•™`Dð˜o~@­d©P­ø’®e´nJëØIEGIn"ÞÈfFâ ÈÅ ¢Y؂Ԛ\Ø·%:âC"‰¶&çÍ3Í?dǠ͘¹T‰Ê̱FAÁB¾pã#jsF«¿§Óûþž'hàz♈o}¯ß_õdÊÍÑ ø°ø–[s½~!eÖmZô~'Ëù3AÏ_èYVvÁ2„ ì´ÃBE)¬#.>'2Ž@ÈqSíÜs»%n÷/LU¨ñ[)@L†!Z¥¸[Û^ÿ1+ñ·  ±Õ[è?è¼:_˜³LÈ"›eÉå  —Vø’ñíy΃À—†'¸!b-^‚3ZqÄѣܚ ÀRð¢¶5'[ᇴ)Ýn3>Û F*”j©FÜúôE>ïdyVÈ” éa .!’·uÛ€fÏ (ÔJåê­[!\ˆ›HgOÏø2.N3S¿°Ï|—È N ­‰yí©‰ì¶ž¸slÓ"Ïk7¦Ä"ƒ¨V„°d)JU™9 œ‘)—Eä `³=œ9_|_®$÷ÈfFX–c¶bë¹8+Ô$ R^F¹u° WÝñÜ3÷Yl*^È×äz¸Ð7.ÛÙ¢?>îd™¾oåU; ”{©â@™¾<ÁsÀHØ|áâo…J; P‡GݘË/b‚KRð%öÛ_ò$ÃbpYPФ*>”08ô>ØÇ=æˆr=[Y±æ¿&¢d‰˜6>m¤¬%_\¡\%T%’*ø}|_ì‡e“s¤d;+ÔŠwN$jq,g@å¢É¸‰r 8Uï>èêf'Ëàµû/elè/‡ ë±êÇÏ\½Å«[j#NvzÈçD8”ÛÊ6_ÔŸED1:‚ÈÃ2’„y ] qÛÈy…Šaˆ›¤£°M×îöšÅÜ­9ÎÃâÓ(cÁJŠãBÈk‰’Àm4Ý.&•ÜñsÏ3Мøæ–-µLÝE#å¢^¤Àû ­9ÏY%4A„ ?×\®.;YZþSo-ÀG²ÏFŠ™rat²´K€ÆÖsbàzÕ (ÃF8½6­ä.©5¢Š©.[ 1Óí¸ˆ# ^°æL‰—$(î€P#…ÀR;ÔJpjH³…à€r‰~/O˜)‹oL¿N·L¿¸Tq²¸B‹K'K.Ød)f‘*:T’a"EáqˆüYΛm0¤Ö‰áå‰a…ŸEÿýNÇu'Ë +oõúB‡m””òusIãM¹„K w-[i˜€0Ab:ÊHjÝ%ùÑ¡YØ©dM{€ÂD&[0H‚NÙnaû–i‹pëT"1{¶ÝÜ–×"‘xˆ,5™'_χDsñwa¬€,xÔ(ºX ©õHÔmþOŒÛ0 BãhÅi’öèwhÛøùìÏiâÖh¢ûTñíwýg‘E‰¸wVy² ‚‹>š|¬š_4å¢Ù³·š 1’kjÅ(SŸÖÍÍæÍ¢§õ­œ:)ÃrbÀ”j—ÌO™õgz¥®§ 2H}NÊqJ‘§û,Y6ë‰ q²ñ¹DËNG”QÑmÞ +÷<5ÇxËi˜…¸aïWÛ MðVŸìƒØ"Q’8k†V°AÉ7m8¥‰Ï›}NÄbªP ôŒøêoñíßÿóÈò"^ÅG„5‹÷A÷'DÜ šë5¯³CC®V<Õâ®J ÅáĦÆC38è¼=‘-›ŽÅ-ßJ§€;¹gZFs"¨~˜µ$KöPʪìòn«PF;'‹ÔWÒLa˜…|e.Ð5]Z® ùµÈP›=«ŠQ-pTCDCW"˜;ÛšßO–aÏ<1¬¨0‘â"²æÜgÑ'£.޽Svà&ß¾þ2¾ÿá?‰,qù(>|ȹò ”N|¨z>8ל5\§ƒ[*^‹j…† d¬ÛxŒhn†çå([½Ý„ÛÔ(1ê•0²ãB\\åÑÙÍKËh¥ÉG¨PÖVhõTôY"rR\Å4öAZÇ ¨´ !ÂCÏ¢L›D‰Ð³Ê–Õßùˆ†HÒ°ûŸàì®I¹Üé 7KŒ`›È¢À %‰û,T+¬™ñWst*UvÕØsÛã³7±ïÿdiÑ>‰s¤V¨U!I‚ÇçMÜóVÈ'G~BnÈ=5‡~ÆpñI3þeée#MV+w’)ÛÙù^­¨µÁ"ÛhÖõ4D¢FbDÖ1\èàn3°÷9²F|±`n÷QGôl…ôŠ¶Ë±¨H@ñÇû ÍÌhµ´(0*R¿c QŠÏõ7 ’™ß÷0nxïãX13% MP/_?V®7Šþèdyï¿ïÊI)©²¸¶ °bâ_€ æÇØŠêÆ\"¹G=c^pŽÙÎ…qVO$!cV.x±SŽý“’¤TÌ šµ!&ôjÖqQ-Ä:Ê4÷y²P­0Ìâ²ejì[R†Vî<ˆƒ€¿TI Œš1Ù% k1j3®k±HKyz1åÙÊmFJ&ƒ¶&g&¨tJ“8ÇŠeXjjg O}õÍ,Äûy2È\¸-LÇUÝÁš:D·Ý‡K‹@}jÜN^dI|PÂ/6^I©b½€îäÖÛ-·áØ!Ýâü‰ s*åæê‚¨˜^1!ƒPœÜߢ $L®;d)Žt‹Ì©>˜»%kÔ5Pf%ŽnŠc+¤WÔ+òãîá†èé ±’üòäT„VÀŒ“w˜/ /ÐöñÐ}ñ¢&HÖ Ñ[ÁÊ®ýñåWú•è?Y”µý¸Ë^YCq—Eªµ’ÅáÒÖ{,ÚL¬ˆ2z«O—Ï¢ÑRÉõ2e‹\?zN ‘^Ùì¸s¡W¹‚Ѳ:#³nÅŽ¬[­h]㡬oP+¢Œ\‹1A³o«¾Ô1hƒ¸µRoW¸ÐÖJ+·Òi¸Ô+àY‚剜¢O~År›ù,HömZ¹¹Gƒçë‹WTŠ•8ñSš¥?gR¶¨!¾€8´oÁÌ›;‰³ø)Q…¶ O¸,‹¥_¦ $YÆ$hh¯¨Xû ¬ à/Xä"Þ&V{cªå9µ’ûw4Dç> ×eè¢Nîüðãá2çŽ,LJoÇ[¤ ][êú,ý”/:ÄÀ®Á¥E8h¶BXoõè:@$‚8S`£(;·ž?´ž¨Ú‡Ò~èÊWj½¥›+{…³gÙ·’3u™×ž(¤HîžË}²$Dg}æðoŠ/ì†ø Ã¥h"Ñ‘{ "KØEŠ= }àÅÌ'"-֬ܲ^ØY² ûOšèÜ “MÖ`ËÒ F®V$Oîú,dŠ+®èñ»<ΡÿPdy+Þú‘,Õìx7DŸ+U«sqИKî(ªÕ ©µé"‹…nu×Ü\]­_m™3+wªuÒ!æþ4  ?à²k6vøé8Ç ÆÒËô‡ChtCâK®ßœ,‹*éÑ]Ѻœ—Içe3¸dѬˆl…Džê ¶ð9ø²ìwèïò?ÍÚí sRÜRQ-²äW|ÀÌ:€Ö‚‘þY(Ï‚m7= +†˜×otú÷O–‡x8Ò+wR|¥Ì”"@טZ1 ¤‘Š_ëÊEwYjgv|Q.L4ù,UpöÌžhÆ~QúV-R=¶Ø…H³!qg5VÈ—07¶ËM+  -[Æù¯ÒÕÊ-Õ$ËC4h“\O|ØøÙ Ú%­Œ¢øÔd[ê³P²ŒßÑùý•–dÑ—&¬œæYpáÓÐ+‹áªEZRüE²ÆP²®«M¡è‘B†ÂÄ™BèÜnñÙëØ÷?Y^ÅGoÅ‹ügO‚°>Œ•ÆÇ¾lÓ5„Eߤ,T#G—}öƒ>ÍAwÌ•ïçY6cŠ&°ÉžªÍ ³È7Èõ¯3fwæTÈÒ+[~…+hpÈL E©qd´ªE–E³”ÛšÔJ锾äåfm€­‹º=Yk¨ŒË¢Î¼Ûí S Ö½º\ŽƒçaÁ­ŸÃÔJêÉœ1ïcµ6¸Z1ÄÜ’¸ä‹)—Ýû£õñz‹O?ÿý“åxçÃx ˶ãlá&|MŽ\9¹]¡›ZPšÆšpa<×]PfZ£${åd $iÞHb¿ê¼Yn·Ï¾Œõ––€„É·ë'gÏhÔÔð ¨\¡ŠaQ>î3d‰‡ÄÔŠ š,ÚO×1c®š9 –"Ëj»ÈÖEh…Sú7š+׺ þ$ˆ6ûTˆ¡~kˆNÕÊnÙ–³H‹LôÃÙ5Êè‘o‰˜7_Çßÿþ{%‹} ‘Ò?-^âÉ+Â…“ ãN€Põ¸ —åij^)ž›“f ¿³²þ¿o!žèžê¡®'ê”sý:²|»¯Äë†üüáàE¬ïk@.û€kY¶%Xjç±(És5²>.¡šñ–yÔýNÖ4V:ì[ÁEB¦_²àJI58qSÆí ]‰š„ezÑ© ÀáŠ~܇  ÂDêŒ%VOÖÖþ€#ûòh©Wûn Êúxõùë¸^·dù+oÅ[G§Ó "|lÆ—Þ×¼œó…íOçÝ·¨ƒ‹]²-£[ =YÔ6¾ÚóoXî—ܨÐ0sEo³˜‡w»á4óùcńΌ1WîY'24'ª¹Ï2BLN’„£Üƒ©ÐYZ‘eʾ~ ·âö­ŒÛ,VÃÒ`ðÿA"%Û¢šº_:ÖÜ1'2$mžäk›À”û +,DŠsI^¯‹gã¡}8VrݦEìtl…‹6 *y=ãúƒz¢ßYÞ‹w?ˆúÑÁ£Z7¸œ?º»N Ÿ_„ ,pQ‹¼îŸ1fÿ5’„Ùâ(J€)˜1"v§œ®" ø«÷) éU Ì¢ìÜ.â˜NºWD&K‹+ñÁQ.jÌ\+œ7{7$‡¡þ"Ëxˆà‹¨±i–ìÍ‘„ õ >…A¤¸ äË@W]å8à²2/¹M kÆŒ ´ååÆªeÂòþÚ@ÄÌâ‘€bÜQ b$×õ–Ö(2˜«k~7déÑÿŸÜwm­V^=Ïø~èù<á2W¥cWX&#Æsy K¡$(@¸a3¦”¾z–I&Ð[™ •Ù 48L-p ®¤9’+Qžè+'™óh‹±ÂÊì†öè$  •w[¾,‡DÚ™Ò†ƒ¡¹¶HÂJ(ć£Ðí¨k¯–,Î+ÎGVX)Ž+OØÑ*Â_…Â/‰'a…4ñËY…r™)®S´‡ÔУqD¯v¨›ê†rÛ¯t¿'²|½ooÑ»·i¸¬¤Wíâ…oÅš2$ˆ×|Œ^E¨-2ïV‹ àf°\Ýøog]ÈDÜxŒ¨-Ñþ¨0îµ4©mK¸6ÿµ?øœËJÙ"ëäh%šþ”ÆÁ¼¹%8nÑËý-ÛqE®í%oTÐá Ù²Þfˆ«×;J™OËvÑ•’*­@‰%ª;²¨Ó™Œ·Œ`€EM£É‚¦yèÖ†Í7i+ì}r[®ÓßçO9Ã—Ñ ùé9³PÚ莅ÇÛ[¾øâ÷C–÷â½êƒ„Ý\ÑG;ùØì:¨.øV`gè<´±&°‹­,ÛIÂþhÖbS¨K¸”ã« R(v‘Âa#4N‚’£m±x¤åܲ­Å[€>OLÜhGb¥e]§„Ú˜ šv œKœq­oe74tÊ9z2¥h’õ¥Š>#ÛQó⥂¡:Ò/Ô&lˆ†s= dÍ” 'ez[”¸­»bEÅއH͘Ýgaï#ÖH×Ü;($Üìwò,hy¦œæYö3Ûe?WZæõ—ñÝw¿²l±ý)þÔ"õI©âÄñ¼œóÅï¬Ô£VäÑÞ‰·œÂ…ÊEã$9»Ð)Yˆ,¹¹)'¦° ê0quEé8l–•;Ì$2Ö ®¢qj…ä¡ä¢&>m„ ÒF “8ôÈŒVFd“¥2jd¡f¹ðP✗hóqŠfÖ/Í|||•º&"æL¦°ÒcC"®Õ'‚-z;›ù¸JåfýtT;]žlæÚ2&7kçÐ+€Z¡Z)”ðÆ–QQÜìªw½2ãÖÛøSªøû->ûÀq<ÆŒÊ<¾­ ó7Qâðlä,Ê”c"G'‘<¡b0¢lÉÇYrfjô#µÂ“Í$®E_Dg ³}…É·,rÀÇs[—¯vY$åR—Zþõ¯¿E²(Èÿ¡–Α‡D4VΧB]Œøéö'.Ïú¸`G2‡ƒ&‰â.Ù›\*•[äv¿ÿlIþÞ³‚©„³kÕfrG1\Zœ=s­ Ñöheʶ½µ”*-ZÒ!q“ªäØ\ÝP}k¬ƒ¡PªQÞ )ibÏPúö2ÛQ„\•V&î![²)/ù*¦¤Mª˜Ál FŒÞ’;jy¨P2P( `ÌŒl2ÌÚV pÐ^͘ÿ[¬dÁ3Ðç·±¸ÉâˆÑÎúâ^Ì8]“èSRh7_*òÿ["ËÛŸãÏtmÅŽ»|izE¾ðlÑñrúSŠ]¶‹às1¸ˆ>dJ«¢‚0~Œ(6ÆùiIú$t$›Y¹à¶V û:fÞâF·JˆDDŸ3’/‹k[ó Ú“¸){¥CˆÆµaç†öâÏG‘Ôx€áQ>ZY-YH¼t)—ZŒ™¸™—Èé‘Eg…Õ t@³¾xΑÚéÃfEW¶DƒFB˜eýV´§‡Ü»EûSàˆŸ)U„0H|ñ‘@Sræv}´r÷ý7F–âåûñž°ÂBì@±È“5þß럺\˜Vu‘ÂxaÃi9²Ò#½üà¸èœQ\ZÉ“.Ê´nfõ˜®p´eöòÛ"[te\k9ß™m´U¤$2DJç \ ôDÙdI¤¬>ËÜFS7ÔC–ʼï;b,qÔÅš˜ %2Ô4I­dQX™—Ùæ|ÄMuLc›Q¶6Ï>P¼,±Ÿp·Éõœ#’,9#!ã4áŠôË-„5;Ú°ú¸“Þ­…kÁ”µå} +vQ‚E_ÑÊêéÖ«O?Ûí7C–OâO/âA _<ÒâíR­Ð¸_$³ÖÅ‹`!d°cžFï–V‹ü«‚"åÒB{Ú†{Ö‘Ðý²µuê,Ä '²ÿÖ?F%"Í2Ê[™å­Ô†(ïvÓcZ->$RÎ…=ÑPž%×9?™—Ñ–nHÈ€ratÉa³ä‰½èª *²Ts4ž¨›³.‹‚/¥>H@içepFq1kiÓ&†hë¢ýK®Šù³Î7ïYO;ĬuçÎ+Ÿ_ïDi6d„+"‘póÝwJåþ»Éò"^|¯ztº*¢ ÅK}¶û!š/ešdííOàUÐj±™oÚc>®$‰Ã…Ê%ì®Üüäo$îG7§.骿 "f²'Š:µÜy^yk ŽGlmƵ=¾Ò&‚Îl;µLÍž (Q‹YÈÄe°å<,7àãŽC_è|Q¢ÜJ´mÚì¹L–uÞ\ß*‚TŸYd4·q¨ÓÑš6 qÞ/:ÑÀT sq iÙ·ònYx[¤{±’&¦VÐþˆŽJ˜ý솧³s@B ˆSµŸ]& pw®XC´ŸI˜=_=’åûïdy¯ÞŠ· „óÅ¥ŠVtz¨»<ñx®T´‹Zj]5‡D˜Ù=sÑ•‹]4§=™Ç—­‹Ý.û=‘†Ê¾ÌÕj™²Eµ9¥J6 ƒ’;¤Œ‘u¥àòëšåæ¹Ç6‚"%wêî[æåH–ñ0#Ô©ñJB(©à\1eK6%M[W¬?$Ž´[Ö³K›ˆ&-d Ï4wži.j𠑆G~¾YL¡lá¢> fpý3»!rD¾ÌªDî„÷çY›³2妎iÇg}åûÄçŸÿ[É¢I3±REëqy¢M.q¹ËJ%½j°f\¼è•º›¤C®ûqçKl½Õf-ÒOiÌõkÿÛ%ú†“‡åÚ Åü«ñ‰,„Åär=Ú["YÏ#¡yiÁÔŠ .*4zÜPŸ£ Ùº::âL͆ê¸3\[åVÐÍh§ˆI|Z!–'‹AŸe<±uÕ+),È .Ým€¤Ä²^­wSžz·v«öQ˜±’µ…å®3b]w±¼Ï.Ÿ{·ôY²¸'UÈ£o¾Žo¾ù7‘EËÃ;ÆÃÄDï ¡S5WV64ˆ—\Œ’6.µ ·.èU­«ñ9k‘šÃ…EêÜã_4\$X1Šíb8'Šèz|$JÐL!CZF> )ƒ.i@¹ÌôVhÖ"ÞR ·ì’Üg‰ËP(.‹Ò Efm»Ú4>­ŠÚ–àˆmA̺8bS}0%7¤†z¬G;¤Éx.ÊÒ©ñ©õú‰¦¥)ÚsX™ øÓ¯Å½*þÎn¸<™Fï>’ñ“Í.LΙ’5™’+×k|ú×_,Ìò/…’ÄuG¾r¾A÷OdA³VôAÍÍ H¼ˆPÍ.mái£%¤ ¸L<#/7;NÕÔ9ý= ”õnÆ(âÜZ&µýñ9ÏeË&Ádl©MZ´ÂæD0\Ê»ÍõÁ’™õq£iä¬WÌËqêÜéÝ2ÛRmQª’òYr]é8y(èzbnôn|O"m‹H93’,£ÇyÊàZ†¥A¡" GBmýi!D¡•ÕyÂÎMÔçREb¤ÖUwj-ºbÊe§B©Ï,´çË7 Îýêd9¢q—\0aݪ‚£‚Œ`Ý†Ðæ¡tEã,É¢šVËjǬ÷³7%v.ºrIˆ¬”]>.¬͆4 êÑkçcÒyléPFõ;£%D„XÄQF(©‘çDùvΖ°ÐŠ,•ŒÛ– ³Š³g£P­G蜡ÆÏ5Döy ãh&!X:ݖŸ--“µ€’òD¸-›ÄH*™Bæ25â=ãXilò‘ëôV·ÁÆgŠ5”w“,ÄJð§–͑σü|­Ü}Ýš@·Û£l™óW$‹–—ñÑdÈÚ‘/¢ öp…ެÞn$=ºÿì™ RTÒ«¥–;#‘¢‰2u‡‹Â,«„ÑaEÀeð.¨|”œa7$©"…âV%TŒ€¢|mÇÛ¢ Ppnhš‰+ïÖ üI²$†úXO ñps’bMߢ3*p$¡€äÃ&¨iqDX´áHw%v ^xåm_ŸÇå£ìØêí69“-ðSüps²Æ.¦;ª;7îÎ "&¢ŒáX¹úâí¶vUø|ó&¾ûû¯K–íG‡å'7c‡»- ;¦Æ»îœÈW\A®y£Ä4¶…ù»ÌéNöJfU@¹è°¢Xƒ_>ìÈ­”³§á²µ–"%‘QXªK¼\[îl ¬Ž-Úž@Éò\p…ÂHîd¿S…N6ÓÄ-©¢b17'ÉÂË0ZnàHI›VÇ…ÎæÍŠ¨4¬ÌVQ,ò»ƒ‚ERN²{ÆØfˆ ™šx\)38£li °hEèI‚0þd„ÝÈïÝÐ)bTБãQû“j|² Snk7¤¹!_ýpÏ?9E²¼óx[‡›aÂÝ–3W¥»ã›µ5GœCGî¡wëÍQAä"›¶¾µvC°`Ä» Wàèk˜et½²!Q‹¨•}Ó#¤JõSRø‡ÙÚÜ17™¸ÙñŸdK“I ÍxÜ_(Gf ›w!&´.µBï–1ƒ^Óý" ˜¢ôŠuCLßf!^äÛd„Ö%gèÔJÁ %ZõG…Q&÷ Œþ„ŠaEjeÖz³\WL­4µm`Qw²X7´ÖÇ6a%V‚ˆàG™m–,UrnÜîfß®¸ùÛßâë¯~E²¼z ݾ€T9Ÿ:sÑ'G¢ÌýæÈq“+×çF‡âüY,ç„"OɦŤ9V¸D«‚Ú$küÒÐukm̓‰Ü;Ú­<—†þèv`%¤ÁÐí¨s¥kê׊³Mhš:{$î¸í2²ðÎ'.2ï_G™ÄùIüTÈE§‡¶"H¤¥¯ÐÊHlÍ9¶©Ì‹Æ@¤ ocá̃²0ý²òeg¤¥P²k6Ä™ÑÝnh_¢+vÈÐgÌvåÊi§s«šúå:bFdÓõ‡øìÓ_‹,ïÆ{ïÇgRÅÙ!¾h±5z¥ÚãÍcr~MTqmO9ë•H‰ˆ‡ªÁqd ³Ä±b„Ù\õJ¼»ào๡Ùõ˜)þøÕl¨lÚ97Ù´­: [õAñø6Õ‡ö´ÿ–R˜äæÒ)ëȹÁIÑJ,&з£¦~PTÔü{=7„KXpÃSÔ¨(ÖD¿ ¢¼¿Vœ5éÈrâ.w;>gI•Vöí–ÿ)²‘<>cÄ%y:eåÎFÄÔÀHSdbEEvRnâÊm (-òp³Ë“¨å©GKÇÙÄ+n©X§£G1…Ö vrÛ›×ñï~²¼:2,F jŸ*l }Qs„·5èwº…èrxk`ÊöŒ~2œŠÃ(’‘MÓ}tõ]eá©–hÚ°\…›FÌòS¶QÅT€¥ rt7½)ÆÂ9´br¹˜@‘`Éf*Ú>CÄN¾Ø¢¢‰ÒýjdÁ„Î:×ÿ»а‚!4š dá61EˆŠÓ #£·$élYKÅ<é†zöD^/=©¬'¼Û¤Œy.®V„;7”ÅΫ›èìÂaA7TuÜ9âè•(óÓLÙY.7=Öâ~Ó4Ú[!|7‡Dù¿$‹N }¯$RĬ,m޳Fµ÷>œ1_¼9ŠõÀÑTshº--.ª·BÉtŠxÄa ÿ%V(—º¬»µmKvÄFõÎÂÿñ¨Ú²ýáK/”A›uXô–}ôVÌÄ­ZŸ¹¨¶ ë£WBžEö-e ÍÚ\T0×»!J˜ þ¯½ž¦Ô1Ì[©=I¥4tÙ÷e¯”_¬V1st‰›)µ²Åà•”mydstkçúEocAâöy©¢Ar ¦8VÜRYƒÅÕ:CtSc%Üèë¹þ8{~óúÿ’,—¸üH–R(®AÚ&ÇD4ÉB$2'Ńs>®¾ð+i´Æv£ ÿ‘ðƒÑ[ŒåÒ9ñB  ¡{ùµÈÈ5RFÐ\fÛ·ÖbÛ«M‘VKM…rœ<7õDòkÇSdlÉ‘¹^Î®ä‰ bŸCé~Þ…$.sqR+úƒ™4/Öî δr+濤W¦”iR‹–è ™d+6d³£ñ3§?s“¥²%? ÓÆÌ ÈÔã¨ë›mQ+·ÊÑ•;›ô ³üíXÄQC»õõÀõ”jyvÝåÇšM¹(‰¿×æÂÁõ  ˜ã–Lá I"@ó† q²¼/ß÷\¤°>OÍ9†Üú_89Â[>.(±K¹™Êåˆzujƒâ%ñD×fÏt|g \4ád:ÿÕåD9¶[¨’øO÷Dî€PÒäŨñÑIÅYE•§ø¢ÜJeaz¼‚Åz"Þ³-²ìÒ,kLίìÇOKn%xMÜÜ¢+!¸ 5GÊ—´ÊàêŸ úìêŒô*ñŒºÊ¥Ma…S&;òšþ]éqXÉBö­Ú¢AÙâ÷ÅEª9'bŒåCcf0…ƒ´?rO°GµY*w\[_ÿöŸi²ôèÇŸØàྕ Wôi­Ð 狆ӧ£¢Úo1Ü|åÎnT¢·­WvGÕ<r[¤Sº§ûµâI\öAy/\ÛJªDu@×¶5ÂõHURŸ»¢.ùÝcÝ앚4Á^‰,H¨Ó4Éf4q)R» ·6Û¥± bŠýئu©•EžŒÆûŸj^¦Dœ†Ð•'ÄøY2|aŒPžKžZœ#M–èäìmÎPøM7'T7Ô‘‚,¿§oí¦[ΛMªØÈïŽÛ=b;½ý Èê?åÌE*šU¶€)“ë·øì¯Å/O–w‡Í/W°¶³æÄëú…ßAøø³ø¢Gy´I7áF¯¦TÏÑÐQÈHû’uB½é OåY²°{[‚pi-9²ÅÆYiÌMŽL–¤¦E87´ºXÌõ”-¹® œ IÂDÖ8èŒÙsÝÕb©¹È·rp'O0×öG4n¥Sè°hƒÏ› õœá±Î>(Óë˜Unй¡ž+{“ÂÊHå%í6Û<`P?­ÜáűG……kܺÂz¯=YOsj'ÛɲT@‡z4¦ØÜG´B½ãúÅ׿û6¾úòÿ€,×… F–ŽÅç[¤nói3YÜp¿öˆ/6{ÖXºÂò¹0eëÚ/+¦º_Ü–Ìò*Å/s—O"&§ËÕÚ´ƒ#)e.Öh¹ì•78”xìÔý aj…co‚¨Vttˆ“fÞèƒNYRNI–ÈBd‘<±³ˆ(ä׊ÐkN6 \ɸ'mV’B +”02t§,ÛüÕ!3ï ó IãVþ‹Ï›19ÚUWÂM{<wÖþÜÐÚP€¬.‰1å|<ô|ŒEµ¯×øü¯¿YçÿQ° ~s‚¯p8Њ$Œ¾HEãíö (|5ØÆ¨(u´“¢ÃX± ˱Ru=V'5ëÉ0ɔç²:,:ßì( —*vÈ0Ö{m׆E‹)œà¸ÃŸ¢À™\Aíd¹eCмù\>î/D–â£wâ#˽T‹.þi‹´BñâíOˆmé°î5G Õ#jMÄì¹×ćƒ¤À]ÿ7Eá"Ë–pIa¢®§>%dBÿž&Y¬'J]¬0ZV@Ù¨VZ2¢sÔBL ûTXÎÎ%òÜP'Mt©O! :©A "˜7§rABoÕ®4Y­–ãSúXᬂ™º+í¨ç65oV¡Ÿ_âù [D貕À¼y¬¢F{ö')~l¾Ë”d$S|–|sR=žë·ý¹ÁׯßÇŸýrdÙb{ÿE¦lgÚªJRSØ¢‡âÎu‹â‹ÁÇûÍ‘ç,€KÐø]–²rÙ"Íâ )Ÿ’4y,@d”+"‹åå F-3/˜UÇh]#öD¾ì!|´U¡”m±ÎžÇ1Å[!©ø,<å"šØmO38oÆ,y“Gç7š0V[ÙÜ!þ"#Wuê”íÐ"¥ °ÒaèNŒ™[kߢqtXnÓÛ"gó[U0ò—Ša¿Ã9=f¸Ô× ZÑ:âÿÓè³s©kôxø¸û/D–â÷ã]ù²Y˜Qý|sÔùiëhˆÀtCL£”µÓ¤‰ÍÎi6¤õV š~ Ž„ ÕÛ¦•Ç¢¸£Ž&¶yí©riZ¬™T ‚ÿiÁh]™ÈöW¨iF;ÖŠB ‡Íšé1±2ðÃfh‹ÄŹ!&å,&§fGŸüqøV %âìz§±‘°¸X´žóõAÒ/aÂu]Â$BB‹hdèî5~> òó ¢´¡·”*Åš[ÌÀfÐ$)£Áµ?ú‡¡GŒ¨Áý²rë‘bÄV²6ES¯ž°fo¾ŠoÿöKEÞ­ùµ .¢Y×é’púãó#Æí|ƒö0ð‚O­·ˆŒÕuMT­ãE‘º-£ÞÎz;t Ãu4é±j–¨©3‚¡« ZfL‹ ù·µ\¤Õ2á鯱Âyjè’íªa.D=j6d?r©RðY %uàÐ/OÄ[ò1!Òe .'žŒ˜ZA€…ò¤Þ*k«ùt.1FÂJB¤lÝÜs°~ðX3eVF˜TiðM8T8µqÏQÌi“ë Laìí¼:·coÆ[QXÎDŠwCÚp ì³ÿù%Èr‰‡âü;—«b:Åâ¶wb¸nñ ~ÚȆÍz¬mU/| ÍÒ‘µ…‘Û‹]tÎÈòr}¹ÊÿŸ=N‚#¥DtÙ+#qšDMK:ô–ÿ*$†.Àî (¬¨;¨ð{Ã4&®)—%ÉÂÙ³EZöU¹(Øvïò„å†í†Èò,,l‚Ôàиը¸@} ×ßb${Ë¿\ÈЪb¥ “ÿ,š£·U`E|¡“š'ƒ”¯åe·Î”¼!¡tÊ.¢ÍdÊjЂJ®SD“ɃBnèžž!ÒâqŒèúÿL–ãÕ‹x ©Y~j`¾Å|ŠÇX<û¡`9ãË…ÝÓ…xÒÛüÖ:9âźY) /µ9i¹Ô«œõ”[yS†Em‘Þë‘c‘ÜYY¸[ëQŽ•#²xõ¿Ø¡]u¿ÿ8 Q]ª‹ê€H™[!†)ð0Ñ$PD’…y ½R­ûnÕ Ç£ ¡Ù:•¢¿ðƒ ³ËfZÔŠcE{toVÚ1¢z"&ßJªdG#ÿe¨È¯9³/Níuua¯v\pUdPqgÄt¯—Û´îÊE41²¬›sñ±úæË,-ÚÇñ_—èMúB> j¢Ç[Ðo}§ï¡›  Pæ¨ÊEñ¥õõ—"&îp¹§,ÞVÖ¯Ž$qö]}PksöÄÇà$H"%©‘ZÔ¼Yp‰¶GU­p¨4ëQ£ÅüÉ—4bö( C7’>Ò/º?¡…çY–c7$¢?¹Rz„©–\/jôÙ"Ô1«HLeªX¥Ú Á³ÖéÝ (1´>C½ÒJ“,6­ç þâšaI§|J˜T‰óÓ†Ùã¨ý¹A>hŸuuXøH‡Åú¼¹ê;¹8|M7°>ÿKÌù/åE¼ý2>Þ<Ë&IšÒ(Žç²-@?Í”q è‹ä ÕyAÚ´:XÔaè.\82~ñBSò¥5i“‘& ¦?“Æ 5Ò?°l…pnH§ê»üm³$ÒÇÑÙ+샀`%öt1<2‡B7¶Äê³ðp3æÍºíiIÜ"vƒX3Ëuø;•…Ëu°fÍ­p$¦V2› ¬ÀÇcötµ+ä¢ãËj…”£S&e®LQ´ß3re©¸‡r[qpµËVpò°„Ìʘrq‘²ó/’4ªU|õ:¾ÿî_ ˇñÉq+e7‘râ¶Z4v``d0âp‡Û¬?ê\éëüH|©WâËÒ•xñû¢dܲKb0·ÕiÃÑ4þYÛ.i©Ì¦¦)_©ÀìYj%wÎÕDhP-Õg©u@›¤ ZΧc¯1°âwâ2/‡t?4‹(“ãh±¢$ M‚@\´L䆡“cASŸÉ…ЙCä’ÅbFnW˜XÛvQF*fÄÔ]ü ý Ù­’¾;Ú¦TìÊ}ĸû¶j‡+#‚) ‹ž+Œ˜BwC\´`î°¹µ/þãïpùÿ$K‹ö*þ›¤Ð§§oÝ£m‰žg³ÿ<m‡¡}…á]VÒÅtj‚z4áæ!ax=_Š)­.Ó½ÀFhpáKsj\N'fã`ýà¢é2±‚ù«ÞÂݬ¡¦Î²­\$ý]Åè 3mQå<Ò¢™‘´ƒBú– Šü÷XŸsf׳6G!Ô²!’e;«(vô=&áªhEm~æŠþD:2».X€ÒÙs¤Êñڤʈ©Eµ9%X–‰²õ;²T”[“+¦àQÿþµÂ²slyüj~¬Ÿ‡úi¾p3ë[|¡Šÿ[²¼o Vè, GFx0—5mØ èhEí ¬âN¦xöí’/ë8éAÿ¯ WZ'GMÎ.Ž ¥ºi¼Z¡m+ ú”T™m$e¢kZT×±¢Oy™uÃHð°/¯ž#;t‡€EZp.ñ霈éÆüäq#ÐÊ +¸÷äæ'Fæ$OÔ!̇ßîd£‹YDv4’xuüGm,[ˆqí©Y"´GâE=ÑÈž(BS!´æÔ"Ì’$’5#)(È›%_¯1±Z¾Uç²L‚Ô^™H±‘¾~:Z^ï—3+·Ö¿¾{?n»?zˆ· gG÷Ùs£² }ü€û2Ð/ÿ—ábŠÆ"ð岦uaî—¡xÉb}P‹-ÚžÓeÅÞŽ0Ë–”) Sžn/§ÖÜKâ257 FiÓ6]s)ïSa–ܼ¶ELý³Px?®îUà-PžÄbº]΢ºÕŠ8Ânq‘'Hƒ/rsubÈ ÚY*CÍN±fÁŠþ"VöáÒ8Ú³m;¸3Û¤TYäI«îÐÚÚqD¦ì&~ÀÕù8UhG„´ây±°fî/:ƒLª,ŠFëXùê‹ÿ5YÔ ”¤€g[ø¾zîºÝDú6Dü"õ•¥]"’.ÇÙ"ãKv:—¾ÄpÛoiÑa‹ôys«VHŒÏ ‘_θˆ0bUÑv]"[6¤=m‹V×NëX ÿùZW74Ñ­Xágs«Å.‘£›+óˆabÝS©Î(·éRqá@ÿ5 >˜âO‡%Á‘ÆÊš»Íý{L}=I´'ÅRÅ,Yþ*nSˆÖdíD¿#Ñ’s0…·g_­Í¹ùŠëŽR.» ƒèל‡úO{%-š›û…%ýŸ'Ë‹µ:÷Sî¿¥T!¡’d´ IDv¬=T®sˆ“…€²èná]¡çaiŽt¯eƒ 3Ó©9@©Y²ØaÂ6'VŸEÛhߪX¾X+‚KÓÁè\× i»¿>CDL4*—å×QO Í‚ È“Aô\MÃ,ªº!EœW8ê„iÀ¾e*¶.=¢üþ·¥Þ2·Õ¯+!Ûe×ãÑyíðq÷*Æ>êÆl:µ.?äÎâ…çn Þø7 °ì˜{Sc_´SÎËÛú?Æ'DÏ“åe|ü#\Ö¨ßïŒ<»œF],ð‚lÕ~oˆòÓhâ†nK§ÖKí_ùR2‡½’ÖŸh9»‘Ù“®Ó̇7YÚ$U‰ÒqÑs}T.K­·ù­„ˆÂuº£[#•.ÏEŸ¼ÛSsÔKAR%ëB‹/»Èrþ‹Î›ýºÒ+ë}·v?K Ó!Š%(ãy{â!×ÏögíŒ8]^:·Lë"”Ü÷úKJÅ$†’/1yË>q-¬ÜHqƒ‘Náù ¶6ŒÕRÈP§\Ý^á¨è,ÀÂEáæœ)út¦¤ä™AÇ]Pß¼yž,\mÅU[_ž2F–,¸‡Ÿ®Pl<Ô6N !‹:"ì,Ð=å:^=h>Åu̓4êƒÒ­¨[tŒ{´^ÑÛÂPsÍbµ\ AÔcƒC\g‘dñú @ "ôDšøÍb?ɪÏ <âÜxî™gÕïP¼&©æ¦FW!\sqö+­.ˆÓ£¬YA|¡ÏÒ8Úgœ!PÎ}Y€…Œ’uw²-§·^žÒ„ûé× \¹™ë4qk}Á·h¾è‚…Vƒžôn³HˆpÒ|¤æ’# Lwy’såüY¯B&ܵÍuµ?¹Â} ûç£8‚¦ƒÊEí¶í)Ö(‰ ²,–m{šèWAµÒ©A–¹Ø1 š±0—Å©åQ+´`e§›k©–ª—Ùоdç:þÿxIžÖ·æ^‡ŽbsŽ¡ìÜaßjtGn‰)t[ð(X˜l97S|~,u3±MŸKÄ9Sô•1þøåçqýþg“åýøð­x×r"Å©AëoµÎÍvÑÅÎz8@+Ü@vpE‚EÄ9}kó#ôG0_€¤ü§+@ÿºvPc@³Ôº§AW_¯ùbþ˜é¢ñ)âè7wJ›lŒ~€>tpc´~ÉÕ§™¸ºÄ?Ðiê<ØûØTÈ’rR+ìÚB=QÁ1V˹„ú×Ëœ´"îH‰œõAúÌ"{Ÿ¬×aP>fgDÍ’ØÚyzÆÌÄÊuz±GáÎM‰8¥Q<ÈÏe‹ B|Hé¸rç ñT‹,­82œ;sÝ Ï¿ûúg“壸ó%šðó¦Î.U<öâQÁ±´çýÙRqg?[y ¼Øéð£qDú¥X=¶Ø^[æk…ˆ—ÝÄ %æc[œÚžXÉËr©3‹5A·^x$Zÿ8C衽²qÒ¹¸¯| œožUx7$¦Ø)ç†ÿ#[J§(š„¦ÈÄÎR–\ÒaBñEy¹0IÏÚÐ\¡¨Ð㎀¿&ʘC1Ñö¢Oj1åŸÄùç€Yæë”6A1³$Œ@pãÕ“vÚXã¤å ³-"sze?÷;}X8\€<’ȧÑ×øâ/?,[ôÉâ4¹ yØ_ëv¦Ùòrµ™$òCFÂͤõ5>0kò»ÅšcGZÛú<rUç†K×Yç]wPÏí¬Œ.úKj¤˜/îaÛ¢E胎.¬5Í>b›¸Í$VÁâ#g>ÊvYÚЯ qB$ÃER…¿.DŸE}~N€wMJd•§«ËŽÓ‰‚Å$]F9ŸÐd/˜t¨MrÑ¥Jä$ÈfCQê&+Î)=¦¤©uPÃÆÌœ":JÄ9S@„Ÿ¼*;-˯O,þô°ù|ÌÌu êõ_Wž'ËÛñî{ñὑ,¦5=…³†èt}S γü6`²ä®4ÈéLZMA¤cÆôt]Û@‡“šãè‰ögfOT]’ŸN”áÒÖ$VÆÉÉ#ÞÞR4AÐ#9¥\¿Ïê’ôxè9³&Sɵ°nXï”S¤¢eOéÖ*üŽÛèãô(ç•V‘Ô †D`M*šäÌòGSdå÷!aÔõT‡UšÄ™1ö¹Ë¦½?È”}rפ^‘)ôk9WVßdÁ|훜»•¥hž7hÍvá6Fé°á›7ñoY^VôöD£~ñ  »¨…o$…'ë̯=Ÿ"u'ˆøÅô€õ @>mkyM‹ñemŽr%S¹]7*€ d Zž, O»¦*2n .JÓUŸÕf%ÊR>Èy9êDÏú‹¥gn‹ì[œ§ýÞ®æÇU•¦S3)iý,Y’K÷Ë Q¦~ÿ0W %Ô/<^7WRîiޤÌI¸hÄ‘ô©GFoC …cæE³,™þ9Ä”Ô/>ÚmÊs…AkÄÉ•Dñ¡±Ñù-`ŠƒÆÖ%l”%¶âéïÿ_}~,2Yþ›SáV2¤ë”óމšF`:ÿºå뺚_L Øá#¬ÐèDÖ‰øÒUçcÛxëësÛE—f‘ñs‰:XÔ¤qèתƧŒíT‹¤Gfá#Åÿ±’Ûêl4FÑø³G®ú\ÂrúÄ/{„Mˆ ^Bi:éÖƒ‚%EJ$S$Óf¶„…$âd¬>(‡|\„åú±{’HG ÑU)M§•s)ÊðÎI9qÓ¥M>SR\dÇäo‘"*þˆ#vZ¼R™TbksÎm0¦ø#Ú¢/þç9²\çͯžükoÖÈœw„Œ'YªFdÎþ¶ œ`-RŒØœ¨o6WÆ[Dû)…$Uz¶™½Å•P!¾t6G‡ÆÒÓ"1Bìž–ŽÅ¦í磫EÂéçz«dª~˵é c? —ütÙ¢bœLï|òD?€BrdjËÍUkà ·ðóW™óN‚@&n½÷™5o>OÜ­ÇÎ1eŸÙíÌ¯ÜÆ³”E„ /ˆ£›KCÄ¡dÇp®d·íÓ¸1E£uŠŠ²W¶aÚ†/?Ûõ.YÞ‹—oÅ{ŽÝõ‹Ï€îˆyÞ¾u'XChÕç÷Bñ‹ÚpÜì‹ Á9±F·.´Þxo%>“/mkm¶¾ø¸Å‘]âEÓ¢z ï¶Ã»Eã“êpãz]#h´sƶ·P÷¡OÊ=îÖ ©¹˜ÌÈI¹ˆ,´Wx·v-N› I³˜ÉÅÁ>b*&WZ£!Õ’­Eo}0DEoÛ*UšÚŸ*,×/¦èÈaŸ·¹G.ŽyEãÃ91GE»Gøe» z\ãm~ÇŠŠhâÚº˜â-î¸t÷daÐùwY|ûõãøùYÞ õ¿£ðžOñÂC.d|ÿåŸwX§ž г^LÉ!/|±d¨ÄÍšRÿ?ÊÎwG’¤H╵ ;p,âxÿ—»å@bÿß²3•åGǘL¿(ÛHÍI­–W„gei“›¹…‡ñE_2ÉÈ8@t~aBÉ|€c èpD°‚nQiнÐá,ÁИñÄ·n©„ѵ!}‡bЏ58—[M™–Í´LRm1Êp`¥Ñçúˆ³â꺷?ªY æ,eª©,@™+pµ¨$ñºpaƒ2Ön'@ôÒ`bIºïQ‹OyvOµå&Ôžô$ò!;Ì£žåÅži«W匃?I|¼kˆ¡Kådˆ“ 6‚˹œ ®!#Â`×*Ô¡¿ì0åœÅчZÆ…Èbmåº+4ö[A|\dBEwyõïî| ‹¥>¸ˆ¸Ì·ÎâŽÒušˆ;¡Ä÷Ëç¢^NôIr„C†w{[z®¿6ªµÂ«EL‹Lš8cÍéÁÉ åõKöž[™dC¼äUgáL¹±²!΋¹WUG²¼]L‡Å=,ÿš #P¨B“h®XÁ5yŽ\Ð^Ê,øc¹Ë°çb I¹Înh·žt}žô×}¼BøÐÖÇ(b¦ÜªÂd•¼éR= *zMò©sÉÑÊ?¿Þ#Ëõîß5K⃱á2>S‘9önÝã×èÈæth..:¸Hc‹8}ÎùÆ—™ŒÛDIyÆQŽ "ƒš®Å—IŽn‡É‘‡9VT^`–»×âj=î–c´ÄáÈž2U¾M]=xs)AY;°ÇLA7nb½šV9Öá ‰/£ÅhJÐÉÊ¥çï¡E;nyÈÐŽ>·uè©máE@†A'y»?FË´ÔVN‘ õ›K™JxöSUh‘¤\ÍCÁÀÚt¾ÙÔâ<ßœ—-Th¯ž\ØäZh˜Ïf7¿Ã>÷¯ IdyWïß×WPRØÞ0ÏcLÆ‘ÏWd8,.ÎX¯ ÿ ÆSÆ#*)úèûâÂÑŸ Jˆ5¾Z‹jH£3-rÔ¶¨š§GÍE™è8î¿1…¾ÕÈZf8ùh뢃«xž¢”––uES 0Ê?ç³X¾%¬(h¤`ÙXÐbcÉövvµû8ž)G6ÄÒ˜ég‘i0Ý·'.ñùÃs•T& ôYC˜me>>Ï~ŒÑªkàmaùaâsq”Dz›Ã*ãóÛÉi¨Û”'éʽfC!µüüýY޿ݲú;Ô&d%XÙÎÌÖRÞGR²1~%Ý‘¿¹NÄ÷‡›B÷½[£·¡ù”}¾S\¡XßâðÐuG5‰Òar$L‘ÈÂ[D„,J@û™®–c7Îrø*h]úå~3ä[Äœ¥TË+,XbD‹o>LeNØöÕe£]Ò’hrQÐ8>1 w¸o]§ÀBƒœdÚ) ôésŒ¥V†Ý1w'Ó9{>hL^ Äa‚Ö…5Ý”o‰ég³òÒ1Ù9V^¹µÛ¦“jëéÀ‹×˜òÿÞÌr?~³A–¯Þ&'ÜwJŠ‹›\Æž ›ÛÉ.{eWP’ë›ãì(§p£-A¤E̹CvQÑqˆûæ>(UÜš 2¼Pèu>OyFTšt;Žõtâaîz ÀÂÍ蘉‰Þüu„µZŽBo¨ÀJ:ae™Õ2çÀZg¡»Ÿ×˜YC1¾Œ<˜¶çí":Ü<º[N|”sÇ• ¦´œ4­ØÃÂα~ì‹KdÁe±_e/œ¶¦È¢'pˆ‚QI’óVðïG1…XðØL¢=÷Jí#;Ê„ œîMúTOªn(â¤â»ó{>Ô7ÿdAt›È¦~ÄY¶°õ“Š/ÀhO”"¸Rd¢Ðعxý™£Ãëµ ¾·QŸZ?7âH”-ÆH¹žFç-g¶Q(Ó(XX•höêÀàîùjîê͵”;ëÏg3r×¹lQÓbÁQR –árŠíÁåMC4³J°j­WS¸å¨ZSt-Sg h8ùMb-ƒ2î¼ô†Fž3<¡ãZ¦µ(K­ñ‚‹Ä­Ÿè=ž½H³d7°ó{ÑZ¯ž ©eç‚;¹þ±ºƒ66üT^ú3ú>Ï3¾‡5ÔJ¬¾Á¢AÜÔŸV2øü¶Q‚ÙJDîaYìܳâΛëJøÕlÅŒS$NL±¼Rª_D‘XªÔ­oÇx5¿¬ÐS·–øzÀª{cÁÒCxaܱ).QFÓj¾‚W9'ª¼êL»-TÒâ2\Ž• x^7¨¶è-~¯¨P4†È†8,†§(—ÉØðëÔ"…S Œ#n«—,p™¤±pú¯qå"Œ0!"Žœ AÏ>{h}æKëùxúTê,8%N\H-1³vsð'›;Tp‰M(ÙÁM”0™ÓÙ“>õÆZÿÂï1«ePdáL–±‡•±¶cƶ¡%7[K×}èÄã»®³¤“Pj”9c ’a`ñ#ãftx•o_JÓ%Æð¿hkLX™€2îcGŽl1 XèõMi}k;÷5Ç[Ø¥V‹¼ÅÕg‹žëP(«-að_O<[gQþ½5¥¥@ˆ¤ßhr{Vëª ;PÎ.{Ní«^+(™ørqŒ2óñ¹~( ý!p¸1ý1Fœo]¼œuÒ‰ûl7‰ôì³Ûðá#E¬YXwœ9XŸƒl£Äø°)OÎè3H¦Ã  IÈÙBɶ+„Y-ßÖÏ?²ü®þø›zŸGj.qéêmφ€ÙeØà)»ŒÀ m2ÛÊÑlž‹®t<_ –ÜyLÈ Ò’o]˜2F”6†ƒ‘ïatÙÂoXm/ÂX`¬³Œ¹¥óÓnC.mê(ÛsÁ}šC-ã´1…ñéYs¸o²žrö‹‚Íûa©Úb®ŠQLý!£~ì‘cåâV´úAš×cšßIî%“þ#f á-̆ŒOõˆ0e8ZÔ\)>/dªŸ<‹xžèo ƆÚTd¬€BˆM!¦-úî…•§sT¡dN$«æºJîL©å»¿²ü¡þrÔùo¬UɵžÂs«Ä…ëjeßZ©°p€òÒ¢¾Ç1¥ûzÑXõV¢BÑ!zY¢EzJ—Hßç×’1ÍÀøål“½¯Ž8¶ù£—„Ns‰=Í‹Šx¹2Ñ5ãZT¿Ä¡ç¸±Ôºªó J*Ë•ÌÅé¶Bmù8²ùQk<­EÓ ô yŒ[³Í\:ÁŒ“„¶½Í—ÂJƒ)Vëý|FÍr–è•Z?¡¤¢ý ?[I2sÛ`¸!`%”¸gÔ{ÇJ‡LÛ‘63…&mÜ´ˆûK}û‚,·ºý¡þkƒm ¾Ï1rw•3†2/Ïm«•`L±…iÛ”qpíäí©¢™0n‘8.‡‹Åýf%¬ðK´%<²—w²$,ó÷uVÕŠŽ5÷á²¥¬¼`.·-¿U¼yÚUDÊÏF§œƒ†¥eÑYÅr•¶V+cgŸ9b,C@Æ•ül´PûpÒVË+.Üuc(l,Â¬Ó Sè4Úr_©ÇÁÆ3‹— 1¾ÛÈNÕ2h`ç]®pµ(˜‹À— §¸žµj½€µ]­`xBÜ.D÷m(‹s­ =¯WjV '§Ì4‹&œ·ºlãtù£9‘ÉŽ c¨úð#(^(ë_ØuöGûqó4s0šTOF×-ä€ bVä8Þt…šÆâEbJÀÐy&è¼™å>üdùRÃ6¨ä…JʾT1:칄ƒ}Ú±Ó€AA‹|bˆÒo2ßqÔ(};0œåX1…ân”0¦HD“ÄšA#ïŠ/óì¢ÈŽAÌáRj‹rÜ…™1ªõ›‰,s®9ÇëØÊò¥Ît÷Çá 2 °~aÁ"ø¨ÓÌCè÷\™ÀÔÐV¨žØz«>Ѽ>É `ŒX:8i`YŠš0ËAµ%T-߃’gг/æ·_+O$yîŽüíñ‚Ýåmç8 „Aã-^ϪdÓ$Zâ›Ö8!KýÛÉrÔ»¬"N q•±§ND™Tg‰É¡ðŠTRBßF Yþs+&KÔ¦ö¡Ú¦àÙ7ˆXmjûZ®\޵im2i?º™OÑæ+ûÿÐÝs(Æ‘"ëÀ:Œ³¼AÊEY{ÏŠ£f‘Îb¨òIhåWä|Ì'9³¸¢ŒOgZU™±èOG–(+D` â[˜Õýy"£Ã‚G“é¨*釯eQ¦5¦ÌÞÕz?y¯{Cii G“Ùî¹f:‚’³«¯½*™–<ˆoL4i¥]2-NôægùþïD]’ÿðc¢Æ}4;KËm°‚ØAæ;ã’YÄÍnѱÁ ;rr(̘Á 3š%ƒÚà>¨M²Ç¬Ý¢¸+Б‡EðDê$„ròxùrå`úÜŒ)¸°¹U ‡H¥\¥•ðÅý øY .¾kÕÀg‘d`ñM $>@ è4ûã’sJÍ5ýj VÊn”Åä6Ðl9rÎÙð¿=!Ó¢+¤ïŸæ:´ˆ«¶ô9ó^cvsûÎÀr^ûhÁƒz¯àòû3­‘ߘ•¨‘òÊ:Baæô¤T뻿Yj|U}©SÆXtD!³~ÌGRFÙÛgàÖÝìX+iÕõŠM.ãFõäf.cfdˆÉRåÖ·»AIÐ>bå›4¡µä H®\]rêQ»ÓvÙ“vlpQ §,-ÿ,[æJ5-dCSô VXÒz ÿ>â!ÏÞhŽYQÐãY³ãC?>o ›ýþgµ0e¢†5ZÑŸ‰ t£¸ãÓBV.¡`…E[\àÓõ® /òËÌ„goÚ@D„ëNP(.jÐåM0J­Óȶšñj¼¾¥#3ÛCßþwu×øÔú]ý‰8Â`kæ1ë”jŒý†½ø²Ž™ÓâwâQ>˜Þ1ÜW6p¸ËS.F^šÍúX+”nbÝÑ%¬é:†Q,t\fQ3KÜm\,]dCúÈ"pˆ NYÄ„7¡u(ñ©´È‚ãBkkɱÏÑ]öDT¿Ù±ØÎ7 _j¨ôP…" £:Å,&eƒH·8Ôse@O×8Ê$âGw…TÅ8ÿ|vÇå>ÐY(µ}%zªýÔ¹mù˜bò wÜ5‚àœ Xì¡$À«§Çÿñ‹åÝD–à,&5{ W’ ×Klº_VZd7‰•‚‘h’Ö˜Ð_à‹ƒ×V=¸ÂÁÄ1HÀ†æê»ûÓÈ«aQwœiÖôq q´‰2Ž[Ñ¢Ã-çÁ#=«›¡á4gLyÆp¦ðÎ`·‚Ü]¤@Ä5¬@dQ€¾åª¶Z/ósèñi®­@8õèÑâ5üÃÊ #Üi¿ì+²+×úÈ£G›Ñ¸<1îxåŸ"rãY´ë|RFÝ¢LÇÖóü µE™—U‰g+‹P|é•Ô¤|{ÍzE¢Ÿ¾}kÙr~ÿe}µƒŒõ!ƒ™×@³Ã&³j.ޝ»NvÙq0”ç¤÷þaþÛWÉÖÀa……u %2¦I‘0(׿Ñ{Þõ§ûÓ{'²è÷ôòú£:>h9Û°+Ò4¼Õúh”áu¨rå\ 3€Íà«Ì¡.ëLè¸ç\̪²`9 .ó,Âiô1-êÁ!¬žmd¢ÇMÚ„â‘8¾¼8YœÜìEyÂI3Ñ'"^(ب¶+”l}·» â̪dOp®Ïî ¤ñ÷”ÏEÙâà§oê—OÈò¾þô›úm’ íAˆÜ¬ ,ˆøˆ§.b—:nR'â_wÏ]bГwMROìê /å*>‡*Ð(¿B[s:K·1QFàeEfyé`æ®å[Õ/”ZæœÅ„›è 9 YŽ3åF£ÊÒoAÄõö¹U{ÑÕÊéx½[ãšè¤ÏÛoÅNtjø|@Z掵…4’ÚðÞõw 6–²R‹@™84¾#ËÜùb“㸹¨¸1ô€V7ÃGÉÞöxVÛªßr¬XÖ}‹¡­Ðû«‚f3 §*ëç¨å·4†*ðÌ Dô'åŒÏWR^¹TXÃÚo•'©Po¼¶ ¤cr–-ÿU?ü£Æ<åü×FO"Ø)Jh=¯jÝ~C™„„§Í°»¨JFê,qÓ#å×#‡ÿá4à8J`’­¢ASŒ»ÈJ°â«JD_µA–š®›ìU—bØ^Œ&ŸúµÇÈѹºÌhàbf[ì%µ Ú[+ep1QÄ…Ük¾ÓqȪ-~zØT¢?½V *4Pn¼åY²}ƒšÂ€"È µqµ¢À+ÉtNäФk k£Î4‡Èb(¹š~’b~O'úlFd'D¬§Ê/ 6ÔN¾#µ½¿ûºFÕ˜ÈbhXÏ®01ö²Ë®xa½³«SdsgU&GHÎSv©5 N p06…Ð`ž‚bCšˆ#V¥­¨tPw(ù{FÝVd¡\1s·¤¹ø¬scêÂK@NÄ>4N3ûâèW¥uÇ€#è1¿Ô&Í q®WºÊà¸Y­”VÔÓÙQù\$Xo=ÍV†loâGvÖ²â°%— %#Œ $5ņ§³OøÓéŽë½ î¼ÆÃGœ ÊÌ\ôS[J…e¯ì:ÇØ÷_׸Õñûú‹ÿ±³`!"”þóßbƒÎ5JT:˜5Ŷ?íBW>€±«øpQ3 vsØ»aˆŠU+ç–kr(2šœ\G'^°§°Û±–iØ^LŽÊ, »öÇå§J¡‰>ÙlLiÏÓM–&}ïV8ÝzLÞ0ª½H …G å*Sò­sè‚ó³_Ü$Ò#t¾9‡%̺蒊´ëÙ¤?Õi‡7ý¡ù5´Ø`%§s.Û:Yõ#ü 6ä—6Ž4¾'1èû¿Õ¸×»÷õ§«Âäš"1)‹¦Ÿ:ÀГ_ï4]T7z6f7›Î»c ”'8ˆÈE«$wŒ×{.¶¢O„-æR½Xc{Õiá5ºa½oþÈIQ5c,.a,sÐ\LˆìO!RÐÕì7 S§¿q‹»yPu`Œ>Œ$þmdñî)tà0„ç»s¥‰,4,IJ¢1¯!” gYl@ ï\ôšîÍPŸW ÁbÄDoË~‚c?µ/@2ŽWp¤.’2áÇÔø¢~ûeý'! ÖÏ%â(çGƒ>7&ïaëØ´‡vßpäˆÌ<–íØ3Y\qø¿dgÝ=f`;ÜJ„>‘Jêäøt{vˆˆ;Å1Ý÷¸“d-jø{ ý=qŸQsÆe^rhp±Î¢@ÃåØÒ.¡Ç‚t`ºI|œ/× 2âæ 6z=ë.ŽS²”óÙH~ (¸°…ìnJ mXAI»è^?í£ý?æÎ¶Çrã¸ÂÕ¼\­^Ç€åØÿÿÇA^ì -iuow$6ñàô‹K ƒ‹šÚbßùÒNj’#ÜL,Qsõ´+MäÏÞ’ú.´-†a5c“­\€d|0A ÑüuåÑ_ÿ\íc}û±þÉX; ¬\¬˜= òÊù`n°r[0€ó“eü«÷ƒæ‰%@’:³ú¾Gå>c¢!b…g|íy.å;£Õ|9 £Xv/ï“&_ø&f{êJñSãä£f,| åÀHÈÏ×jºÜ„¼ÊÇ@S2PÝ—bjîÀmáåÔ K/#áé$³ž[á%œ7³-‰Ö°—{óst•¼RðÉ_u^-ï]ã×ì§TMXùûÿ®ö³`ùP_£Ú-3âtœ)qñ<ðF̦)udT:» t åÖLMh[úI\'ŠY¿.sX¦ÑOV4 š/ŧÛmZʧHj”ô²zò…÷(ª'jì‰ [ìW`Åirj–ç|“e 8¢ÏðX&AÇg7ä…?´VéÔì\G(AR ÑÚIQ!‰ Ácäõ‚!rá8‰ºZ¼Ùõ`À —|÷ÕBsMé`˧¿Vû²~óE}»²#yšµªÇ. Î$z8¼V÷^t|(X®ŽŸÚf‚e›P2(p¹A ¢ 26»„I_ÙKÁå):,ðzÎïfÕdÄ‹$ >![ê-¸(3€•zóµŠ8½2fûÓínãVÏ>÷¶ŽÕYŸŒO#f•'NH•Yà\«™T±ïõodåè2q“*Ê0öÇ©×#´* ÉM:X±5AÃ-^"‰d‘fáv½;8ø+É“Ðɹc+ä‹gÑdpÛÚFŽlaÿ¿=*V1¯b²’fá"ºüúD‰§fÊ*]ÎØ}I|ZÌo8lŠã£;ëoS˜y2˜ũçST4¡‡*ÖX¥x“ùB½S›‰(3¨ùy‚Ë耋䉘¢[ ]ª”6¶„ ¿‘ç¥ùñàÿ}µ¯ëw{}Œ@Q@±PunÔ¦b£Ò­8ŸÓó'Z*)¯$/b$òƒ3z !b¦‰<‹ˆ >j!…sæ®Ä…¬VÜ©Ëgo ×ÜOëaßõ¨®â¦˜n®“ekÒ,í$‹˜ÁR‹`!S‚™Ò…Œä TÌrE;ÙŸ€Y$E¢Ï™g`§ríÛ}ØœŠ5xæÞ“¡{­%у^>ýQ º§L ^{% àãKY¯?à©Ì¬ùô Y¾Ûë‹¿E–÷S+Z+¹ß_’g®jÛ4*{ ² ÆÝ˜á†¸Šáp‡ö-ü:SO¨¬¨wÖÑi‚2ü* †·̼°²M¬´²ÿÆ€fé Y0—Å݃>ú9bŒ  › 냒f1ËVÉ`Áò*™;ê’R‡å­Ó8j Fk£êWoI¼ßYqó™í‰n î ¾”‹Øwqñ‹ññL¹o›†"YΆ׵7Ö´Ñú&6PMý¾A¢ÇÚˆmÍv©ÝŽLFXßÄͤ`ÜÉÄ °Ã©9øá,8ŒAÊ% ü]À…dq¦8_ˆ•É…ÖÇ ÂK6ŠDðÞˆ‚$gVjÔÛøpÉÃ$-§•<ðE±ù) d£ó>½u¸£ø’èpj(ð³jê§Â]GÕýøùSM²ì­2à_ÔŸg¼Ùg«}]ä}4‘]æÐ•NǨŒ Ú Íˆ¹í¡+Ÿ%†£ámmâ„Åö'!ÈgðT8Œ×Œ,à‹"b%Â…L©êƒâ¾i k'"ã •ËŠ Ì4â·˜·Bóeåàèo{¥îÔzÞ;Ö¼wì*&àf\±`žu&Û7õ‡é˜^•×kkïF c¿²´à¬Éø ñ5/ÙX`ûÿ‘ïR¬À)ã;ß/Tù¯nÜrÁeù5®ªÖùôz-]›eô´º¤V\æ>BCQ­( pð1Pä€Å.@#ïwdA­ˆ9oh ЉñkP²rÕÁM‘\ŽÙLUvI´¸Z!r ’_5>ï¹"^úó²üñQ÷'ËEyr½ò亭£˜ë(ž KÆmp:\ÎÐ.yäÏÝ¡X8°ÇÄpå‡â1™c.Œb>Z"×J ù¬ÿÔø"úô€‹¥Dsc¿B³Sép}eÄÀ©—C ±pc‹«>Ä#—ïÍ¡Ò!Æe \l[Tÿ~kJ¼´oëÚ„>F© CŠ}’M#¤;”œFÉNr,ïO=nË4-¦;«úÜÚhÌÄ<ÏËqHo¾"­¼S‰*°¿Öè¾j’0ísÉ2Œ,¶ýÊö[˜ûZ~=ÃÕJF ¿ñeèÉZ‰:§ì‹,?ŽXöÝÿÿ3~MÁ1ÓpQãJ*ý=¥K` û©ø KÚÀ·ó3y?¯`Õå T¦¡Õ+é áþ”ó  á¦Ù&dAìmÎ)®ìé–hµNÇ CɺrCpã¿LIM :6-Û%RÙ¤À‹ƒrñÒxõæ>9váƒ?¬f ¾ gXÝ£M6*cêB¾Ó¯=~-Ú³ì:znÔ!óN–,1Þ;Ÿû—W°ÆéñÈÚg]0›°&ÉÈáò g'ñÿlsúfÆÎ4"»Dù€˜WP=ºÄÈ’5ˆP¥ä2~"WË‚(÷_q*s÷Þ¨Qœkî“ÅkDkvÀL yQæ‰ÚrmQ_èZÏçî̺05k ARÇ—7aË›6'z´ÖLåKTŸˆãy;q§|®ÉëŸA2jGËmRž¤äq )3ó¨ÏÇ­\á }”¿(ŽrÛÅÝ›v5ãZìØR\º–"ÈÖWœé£v&"‰&}]WOäy£ÌáàÚ ÚänÍ­úw®Éõ¹ÑpoBñÒÜ:I3i’eéŒø½eƒ!"†q¥iT°o”w²„ùú}ÍbÔHzA]C¦(SŒuíñ¹ŠÍúEÅ‘V¬aìPΧQwÚáÉ{y%ß+ÿÿC–‹õÜüÓß•7 -c¤Èz§)ÏéµiœRÀ¦Ã§?©‘QAD^'bõ\3w@¾Û'q˜ßX¯š}©©•8¼–Tâ…·È‚sel4¬£É4 5+jñzyH7M¬¹N]ø®¿E¡¼’•õ (C|7J†(P2w¥xP/(þ"ÉbB1žÃ sFvt%tOî¡\§Ò=r]°,Û8v`kWw»‚_Õ!.Ë_2_ù]Ð#XdÉ ¼,¯¤Å îE˜P@5áó yTB½oø0úM ƒ¡Ž‡ÎÑ»al‘Š]žèVXß7a–!¬¹^ŸkTð\»0À‹Ýåg³Þº$#ËZíyæ÷w¾Å›ÄÈ~ »Ü†GHâ ±‘ÅH‘ãù<§T“)à¸qwù`»*¶–JœÊö÷„Ë\óÆÔY7ÄœØñ‘ÿÇn=HV4t:ôE‘Pa‘$gì 'ŤÕ$KõZ)PFlfnøºN–÷¯¹w¡Î³|}œî_wþm œvþ.!Ö·¼Ö¼GBIØí™Ëž\¶¼^3Y¢ð)âã’+_&üU=G È–Çç7Dó¾N h[ÎçŽåÓžÜ!M®æÍŸ¼Vxj,&¿ôktF<ÏÖÉòåÜZ“¥²E:(É—7¯JÄãmˆQ£â0˜Äñ=’éK¿Æ>©Y8Ò… f™Z!5DM¬¬6„•óq•}‘-/ˆ—癤‰øôÕp]°­L©ã+Áž uíØ[~Œ àæöƧj:ìúèîMC tËŠ/‘HÓQS$Î\ñâ܈?UûX¿Ýëë tH(Ù4èÝÛ[=Nu“¿È“Uí¸p'2‡EÜÊ=‹‹’§µ¶Îeô˜þxfŸúB±ò;XGI(hÓÊ¥*‘¿ý5M&£Zm;˜B”ìGÀ¯°VHd©fdósj‘E>.>_'\ˆ¶H¶±Ñ˜¸õ+ËfðŸ,hÄózع0!³N=†+A§Ó³´¥‘ä‰ ÿ¬ÞIM]<±à‰^L$"\ÖÅsÃãO!YBSQ/(¾Ø’„EªæCvæË®MøP,Àí3°Ù“YíÑò¶ ÆD™-ÂŸËØå3%%ý–™ŠQ†ÊEÊ·V£ñi6TÞ(idi’-­j~VY„•ù#ÙB²tÏ×ñyÂeÚ¢*œæ€A‰8Þ,öp)NýNõQ>"Œ`•W/Ëiš>Æ›[ôY5ØÑ0&D28&#†T òõù’Çë!…N›¦òiº•>Ÿþ·ÚõÏ{}# d‘Âä¥üfgyÍÄ­ ýŽè×ÝÔŠ‚taÛj¯£¾X<ã¶af<FE>vQAj¬­-åGòIΠäûn\Dù)OlîƒuÈ”ÆnH5R+‚‹‹>‡˘ŸÝàB¬Ì@?/ìk^‡ )óz÷n&á=D>~B±'5Öé† ••—SìSgï´ÂñOY-']‹# VˆôŸªF4UÉßM"Jªù¾¡½¾ù.±%É »}·Z¿Êg|xÜ GlëªnÚ„˜½Œ;±xŸ+'g”Ïp2ÛuZ3qÌLÐh>Æ­B^ûÃcˆ "¬@L™Á2ßD»«¬IÅmjvCz‡™àr´BòY@ù¯î澨_ÆÉ¶Hþé )ÐÇDÊäWc%W¶«•­I1ã&h‘rBD­¡â‘ŸKÐá‰z'c‹y)ŽNâ°ø>h>ýOµ½¾>Ȳˆ<ü>heE­“°²å+¯ÊE]¯ªxáVª¯7­gû‘8÷¡«R›]b|›0Ôôëb»Èüˆ;U§3˰2Žü+?Qò _Ÿ0ÚfŒ>HX™AÕI–®§±ÌÏ 1d™È›ëâEþn/5>¤ïiÔ÷³v(£Ì ;2¹»aÆ%‚Lw'VÓ—.ϯ"DÎ_Yƒ“©2@GJ)Ï™T¾0%£¢!ËÒ…?ü©¦fù‰‘ºD‡ìzð&ÇÇUÊŠù_Ó;³¦r±(£e··g@¤Æ: ÏŽ ‡Ö¤qj]šö-¡Ã`kU{šIzû9ZV+¤Ë²g pA7„÷®ö³ªzÁÊ_ÐÍF†† &Gj‘t­âU•¸Tñ±O|§÷!"8hü)߯ñ¬6ì¯ƒÊø+Ó._£W;’£W¦CÁ%‘É2¢¦ó*׫ ®)¸®Vr‹|ú¯j[}ø²¾k7]=œ4±8ø|¬Vy•E%b•l‘¸ìLûªµz{¼y%?If|èZ£ þiqg´øA›õ4P Ðì\JàDž²ÝI´B9,sÙÒç&¸l§Ã2ƒ.åòZz"íOÝ(dšeæs ÓqjàPÓTáÐg“ꡤŒž9åSçΤO‚D4Ž¢p˜¥€†ÊO–ù2uA°4Åh‘lˆsÝÙ±â‹v²'øc ûUý‹m]ö,Þ]@ÉæIlc: ‰áϨÌ%iÖúRâпŽcð<·nBÉöÖI–3Y(›/P§%ó}#¢†¡šÅ9²ž…ã,yBÌ +G€O­0áR‚ËF¦ÌXL9e‹Z¡ÓÄfF@xyÕóä˨øPY|Ñ%’0mæ5:È%‡…šåqú,è†ZdY»¡ógí©_N=2±ò²ŸyTwÇþÿ9˜fÇì/Z£÷6A@SÆ-ÞZn G;/GtM¼/ y.eèÑÓ[fÒ»I’–zŸ'H”·®ð¤â\ɑͿ=ÈÉ>é¦Ét¿p$çõcýðïu’å dn¿ì§\ƒ‚š ‹(™úBq( º)4nÖ4Í̘1®%J5ßîÌcrK§SÊø”G†«ÝjL§Ö«¨ŸtüŸ ÉS¹<æ~lþù¦Ä]Öì"U”Ÿ®Ó––Òi í[³—Ù ÁdYˆuC ú´Øura—ÕÙ7?åÅ,ÚDP˜|šXÏ2·Zõ JΤ‹Í‹ý°NDFTÖ’Þ-gô¹ÿG?~Ü6š,7W“VÅ©_¥Ê|U>#“fÛÏ¿Ô:Èò¡~³×·yÿç¤á#ë3P+Û" &ì†Ö®-X#…²2|ÝŒ•lÍæAµ®çí9¬xYï°À ͆êosä$4)ùا ÑQÚã†ìmòe#\h²^ýÁ&Ùºè§}º!˜¸è†Î>h¬a 8’:ÿ~$Í¡•¯W{v!¦·×1?zbµ^syŠ4©êÇåG@Ð웄Jf½5Òîê¤ÂíbeËQÛ´Ùhµ´·ÚŸZ'GVS6˜ÂÑ»ë‚Å¿=½4ÏïëÇÿ<Ȳ×ÿ‘÷.<šÇõw5ùÌÈ—$²,_ÞïÿáÙ²£øbËÚyÈ~ÿ˃úဇ"vÛ‘,`@‹ÍÑñüpêTuó'/õ³”xcè†I¼˜›Z&§Ú*žz¬}Fd&h°l½Å»Ò,.gD–e”W1Á fÞ*zÏ,°½È³²¯¬×YLÃz“ÎpXNnÎñK^íûàVk«DWèäICk09P–Vaà dÙM¶ìŽ•ãç9ÍmÉ41REs.­VÈ<÷9÷¡`;Š£§8¥š¨¤JŽØÅˆŸÒÀØ~j®p$Ñ ² Irg²b’}[[ /pŽÀ:>(šP%¼’ÅQÒ*ñ‘¯ØíH×öê©úà·¾ùŸzþù ËZ?~­ŸPJäN¶`ÇÜÛ"‰€ìUÒÇ@3ZEè žf÷§MPf§Þ‚" eŽ®0‚ÅÛ=éï #tílµ¢ªÊ%‰]…0éøÕ»~æú8ФВ÷ :w‚.ƒG¸*ÞÃö–4Úh¬¬¢ ‚¸(ÞÌj©˜v›Ó˜ó&ôPfrøÂg‚>QlŠ]‚@„Á–îØ,/Ȉ=jú°`]ç\Æ"¦èW(1ƒöP(«bÍ P€ ×´u&Ò ²¶ÃE×Åh|–Í6áwH)(#jlåã¹f²ôõMñv`å&OsvŸ’6šŽDä¹t—ú¬ÒJo íáȰ²MÙ@R.©t[æN)±ìåƒfaž%$Æ81"QÒ‰_æ¯`AD+ÊÑ“+o’"Ë7¥ !ãGõëí'5,¸é ×mÑ4}.QâŽI ÄQ5½nr]üïötõ¢»¼S„ÓzS¬±’jéÀ*&ƒ’D,cýª•BÉ‘__‡Ð³"ëû²ˆ¾Õ˜q5·r¬(–‡K•ŽÛ»-% «ÅÉâÊEP&®„‰y.æ¶ì>nk?<2e6%7ƒË6ßæxOŸ20•ÆáÜIQÑ”#vîøkL¹t«v-ò”·,_.döéE á‚ç‘O”˜½R{«¹• ‚ܰ v7k>¦ 1u³ò¯ÿY5Kd©O4Ò¢±ßj|k‹ÇP\ráÒïP|ýË'ùk”˜áb¦ª§[ʰx/ýmÕê‚ÅU‰© ,vñâÃ/Ø´>GÛ{Ò#öWNQy9Š —±`¯¬%¢x±[d—VæÙ—PƯ> 'Ù"¸T×ãVdÑc,ã°(ƒBñÎÎ>8sÛ”‹ÃåØz3oÅöõúù¶w[­Âj±!}e°~{wO°C×Ä ¿è¹󌱺.aºTQÖ³'âÚ‘1ëwO%»Ô}4:¸^(±€?ìÑ%ÌØ ¬µÖ¤ÿÂÓ˚Ȓ×ÓÍnÆ[¿¶æ‡‚¦"¹½«o~cdyÔ¿ÿ¿Ÿû'q–áª$#ÒRÉ A1z»Ìxt*‘æ€ÕfðìÅdê-Ë2–ScòC·§òã\kÆÛ|?/šä)±f$…]Uïã1ë°á·úoÙ ËX2F B²ô­=T¾oȧû£ëLT‡–ë“fiîþ=&Ümù–²h>·!^ôàܘ9zZ·[ÔJ>w´ÿþá‹ä ¤£2Ê_Ì÷Å|q¦ jº÷ì+φîÜGã4p[îæ&”¹LóØnÚ·uo¾°àß´†žo®·¯Œ,ëûÆó§Y¶Ü¤â,¥ºÁ²K^„3BS&Mp6½Òi¸”±I+'B†m¶j\CÄ´½¦WÒîÕ„›¯1Ð`åp–ŠÀiÚíP1 5‘ð‡`™Ç$îX …&^l{Á‘„&È0FnÖožÒPÆë:«ÞÑuW<ýÊßpÔDnˆšrñøí¨†š5=ØÒâe?u£ÙÜø¤•Óü»p°)ÎnìðŒÛ1ÞrÊÙ\¯ŒÚjuŸ|–22>2 =JLè­Þþ3Rª$hn´k.1t’¨’Þýw=ÿZN–¿ÔÏ÷LñäL'%PÂú ”°,Àt®tŒ8çÖµi§ ´BÅxcheYš,ܢ܅ s„m>ç†tY ‰í?üWèõ´AÛý {Ô¸iéô:ôTõŽž2w¾•[½Ó‚¥ ¢ê*©˜‘[«dÙª&‚¬”Ó,È õ;e:À1±!:¹¶Ç<‹@c›ž[ÉÄeÐŽÒ†Ë[vfÕ,cÇ|¡µ$ FOáÑ4G&›DM ¥:€bÍÝ’1aeÐŽ€,‹.ApR€§wÔ@Å2VÞÐç›/kÿ²Á'õÿ}€½’:"1D “ë³q“Ò#Û=¹hYb7sÇ)«b>‹ý†â-DÖuÎ[÷_™vq¦@UÀ^©¡¿ðÞ¯ÜÛÖ“*é¤P ‰ ã–£ZÆañòV ÷Y‚qŒqþµj(Â`Q@)DàâÅgü}ÚU›ßvÒ‚Ëì¿ÆÑ_;º(Sï‹9¨Œv¢Ûã© ¨Mç9ß&;>ºâ £’BéG^Úø‚ÝýcSañçØ; 5—ˆñ†ѸF@ŽÒy1u7ewù sïõ½¡ëùña†Ëß¾8n,õÊgX¡Fâà¶‘œËˆ}Ò$—U ÅÍ|hò¿ÛMëÝ£cåŒß?­2:bƒÔXüãa0Â2©pp)ml€¥Ë¢Q¥?uÖÖâñm„’*=¹ßIU@K Ê%£_K³pœNu¢òÖÑÒÏT{e=ù,x·UÝf®š;W“*½“È>ë1?Î!ˆì»ÔÍ@³ltˆt{>’n¾í±£‚èMA«˜·ƒ#û ¾äá/T:HÖï>ƒ¹+\²Ì¦`Ôo 8>(‹Â1Ñš0YaÐ0Rd15bþÍj²!íËppf¢*’q&¦-{{O–ª3Y>õ ¸G ;z¢Çlq4ýQ¶]ÊÓ¡n€‚e|NÐSaÜî¶ Ï%v ¬§Ñ•ÁNn£”ºë"å‚™røµdK¹TñÞMåƒ,r^Jt[OX9”Ùjÿ6qgpëí-“-^UÇ5n}Ù :SN”q“Eq4nzbí¹õ‚­=%'eî 8z$¦LÞ¾Âgß/YõçSKû§£­ ìÄo?ÈÎc†^—wk˜àÖ†V!)d ÙA†¼U•\5#‚;dîÒuâËíme¶¿Ö»ßYÖúé£>Í–Ð}”(ñVtV:>öæk<˜mÍä¹îž ®‘7ʘéß¼/”xeYs+‹|jn.µr“t„&ú&Œíbз6Ë¿>`ŠFc9ííÀD7õT|‘lé±7ú%[×¹l_â8))ßyÈ-q¸ØuJ©UÕ:‹j¾Jª¤tµCåí!CŒÒô4ÉÐÆ­Œ˜y@a(¹©I¤³àÔŠ†88»È¦uYÃX]ŸA¹ïÝ~.kK»*QCzë{Òß78S¼è;´šh²ØŸôØ(JÐîÄ¢Ýiâ¯ÜMý§ÆIé1îÌ]†}íi¬÷ß¿ý¥Þ}dYêõ¥>7XÜãÃãDO>³Ó(¦\fe…µ Ÿ=qG6_±škÚoصFLÉöó‘Ük$Ôú)ÐÀü››)ÖÒzþP§w i÷t/˜ ¥®áK@ŠE I\=Õ2#úH›¬Öúõ,°³´Ì[â%¦o;ãd™>/§?9£ X±`£6/>ÃÊDœR™‚‹j¢6YÔ Â^¡bÔ9Ò£ÃgñsvßÞㆀûRe|ñd«°ÝçåàÎû¼ÅÝû˜Zè‚ÖFæt›3/–[ø¸dBàøž£™4A÷ Ùî§f|}êedßYªÖOú@Üú`”°,ƒ<)2qƒ«LN¸±¡9kÚý·™ñ6‚=TÌtæ(‹\Âø¬í´£˜¨N[Æ/ÿ(‡Ö÷Q’¾åG€X©}‘—1–ùx :ÊÂfUlsP`e«b£Æ PJlk¶Ãëjtr ^Î×"ˬöP Ì©I¤¿ÌancÄКsßÜy2„u|Uõ´›+#ÊaÔ%½˜nŠ£K¹±—›/ „ò'¶ øP¯7¤k+ýPõ ,4P{6w÷´Q®—q?>Ê&Q¾{?·rõ›c¥»œÿëxd©LÜD‰š²€ ´`jqâ&ZÈ<òŒÉ E”BÓ<½’#-x4øq–QåãöyÔ[ˆ·r­3Íà,Û5Skì %¤@ NÖ¬ °HÈôÑMªªä?vŒžå×úeÿ?³ÎMÆpáˆê ÇŠû,^ )ž Υ̓0t[s߇õ¡ý ÈyŒÒ ÛÙÜJ¶“Â9);k¬=´)6ñ¢i:Ìݧ&€)޼I¤+Aî™Æ”ë5s..@Ð,VPrˆÎÌÝéy`BC™Ìû6‚T"eAE&ÇóêjÀ7ý—¿ý§@dyÔ§kýÔ…@¡Ü´óÞÄÙª` ™ÜþÃ~B_?c†eveäVËl)T¦Y š\ŸaS\9¿SÚI¡tBY¬>PR¤5^l„ßfX4†ûx¦Jtžî|¨ÄGÑÌXaº¿Œ2˜µiܦkë1ú¥ Ë‘„,þ3´T1w›rvÕR•Q{|¥PWnõÇOÒáòdÛ´µ~1™xѨ.swæìòh›QUíç1cÇ´²Hù’£/(‚À‡JKßÒßY ÆÊ±ZNÎÂÜ™8O7m— ×&ACUÒ¦éÛK²¬šñ¿é"g¥s[9 ’MVé82B¶p¥ËNÐ^K¶~Ð2nµÌÔ,Æ—©GGû™I9Žk¬]Ü£mSƶ)‹)¥¶õ§Ö\•µ””ᢕžÇ¾ÅŽÅm¡ê³öÄwZûà8î×.ÇUù^y@5´›`áöt\ W6@ïÓ˜SAq€ã4‡&çu/&è½½ËpáÜ9n½ÔÑ›ØDqäÇÖyg‚§“,Û:Ó ÔÍYÖål)4É0Bñn´ºÂ$µ&˜åê]s3 s'dnÙ1=׋9ê=V¶¿$Ytƒ‰ktÈJçVž˜‚HÊÄÄJ]±¦Â‘uLhzäô{„ ’ÂßnN vL™fÙìwîýÏXi aâb¾œ ¢¥JV.¼@°È[Y'G2¦ãÈÈsáŒ8Š#>2Ì‚¡ÇLù³èÑè–® ¥á"I"Ó·Çät’®ê#a… ÝC¼¼á¹´MódóŽÃÒ‚aþ´}–hÓ.³+s–KŸÅk"ã‹k×5)Lôî îøú{ŽèAx·±Åiÿ€C§Þ~‡}kd±©–_z\žYwª$we¡dì¸Ù3µÓ×7pj·_RÍ#cÊ2 `âÖ(Ëð‰8gÊ2bÎ  pQ§Ê´“buÐËVc‡žb¦¨’ÂFYG¦)³ zCñÑx8"-ƒdãüî­x|Ü:Y˜j)fåÎiÿV”áÖ‰ÔuS£÷¸í6б2}–c¥ûµ B¼(϶#/;L«.Õè.|iýb¬™òv{ŠßŽAp^,èˆN¢q¼y4¼öñ&Q:»×Ñu5ï…Ì}ÿ(+¦\óöÞ¾­ ²˜‰ûùRŸ$þ"m¦^¹.cà­8S:)d0ƒ Äê eàˆX@ËĨÀ±#²­Ä2æâº,‚5lA³Þ7c (sÚ3iV ÛíØ§Rfˆ¤éãÎÞŽ¸Y)T8/^ (äÍͯ©â¼l5¦ºG¬ÚäÉ]¹?SÅ‘’}ºÂÖÕÐQj™ºQ¡äã0}”÷~X0OÕDØ·VÙži²ª}1{…x¾(ö¡•S‰”»ŠÂÄYÅ”Õ,׊óÀ:‚!s_(<ß“åùÕ-YF½¼Ô/R§ÜT:&4¢JŠžÑ¼š ·K$ó\”¬¨ƒbrÁIq5´Ù‚raB?È:G»ÖÈÉ„)'¿V8`‚ö¥¬©Ü( ŽÀ& I!#Ou""ìXt˜Kôƒs‰Žx±ÍÖ 1Åv!*‰«Þ‘åÚg9ž¦Û¢£T3lµ•ì[¹¤C+Û^±ÍÇ“ÞP?ò$Œ‹W1”?²c¼ñ V€ŽxDçˆNÙ+ðÅF]Á"^¬Ô/5”HH×/” Ô…Z‰'t‘"s}?4ëóÅdAj˼ûmÍwI–°Z–½¯tÒЭ«¼1ˆ 0Q^E[Z‹gôbheì ß+„ÏâSsb ñ¦øøÈY-ñet‡`ñˆpÀˆ‡ÝžFomñ€?EÐȹ9Ø:tb”y¬}KÞQ"Pbßz¿™àº¢”óŸNÕÐÎGBòh…ø¸ê>å§øT®5•ó\nýˆ;—ˆmŽŽö3FŒ—QõÆæ€S©º(cÃÑdxwßǬ=⛀@82Q+ð„aql2ò$uÖÍ | ]ë”Ì;5î…Leß0ÉrC–C³¼^WCöáäD†7Œ—ãLá—œò!¼ÇvgoŒ‘fŠ™à·{¿K¬ŸM·Ê÷îgÁÅËŸõôÝŸ—Òá'©"ø`‹¡×‡ùµÊëÚ~-‡Å}úòœ}ç•QØ·³”1ÒfÉÎÓ^L°¸ZYƒ, ”œÁU¦+°¦åÉœm¯\8´y†YwŽÙÓ·¦\Ôî {¥Ù4f©p ”µŽŒ©F ª9ýWsa´âãpâ Me䌞z„ï;c¾ƒ,*Kf¡äB†ü¼.ˆbwuÇ_ÌàYû7õöåe©Ÿ<êg—'à/n¬:üø¥¬ž²äI„õF“¿f€fvhØúÝ¡£[# ò½B¬Ü­7DM4´GQrƒ¦šåuP±Fþ‹©’1]Ú¨82ï–JgÌ¡w‡¾é¡5æ°Ø7^©ŒÔ3²A[òN·]¼%wÀŠ %# Qedp ÙâRůЄ]ÎÛÝ‚`5»õžé©o-d`ëÚY܆žæ0[ ¹¼ë“ÞâC®;ûõ?šjˆ˜9Pú–1¹·ªºœÖõò'F騰nw62·$J¼EO™µ½3k¯õËóµýéŽ,¤ÖGý*÷J¼–¹–'x%,ËîO’È€B>Õ5ÃÝY¦o³%Äûmð¥ýZõˆWY*Ëœ~ Y¶/v¾RÅÛÌ"ˆw•ý ŽWFÇK²§ìJ½$9&}4pŸèø€œâ¶oOãü1}kú%4Ë–ç?UŒ´(157xl§|×â¦ÛCGˆ‚‹×A"Åù•z$¥¡³Ï!L RÞô ¬¡Ýy`Āœ÷­ËØd¬(6ˆxä ‚D¤ E HòÉZCLx.AŃÛJe^+GŒâw_Ô|Þ“…1ÿã#!ΔDƒÝæÖ\Ž¢°ì4ZŒo’õJº OÞ!<…)îײl*n*©ë°:¨Ëï"§T¡¨5ÆŸÄ%sîiŽ…¢1_aeãa|YÍ bZ˜(¯kVÉê&QQ­Þu¦UdC…>/‘]gÃŠŠ²—+ÿœXñùí'R,‚࿼±ÿšp…úÚŒ8âS‰ÄÈ\‹—®°$^Å‘eveôo–O]Ghi.¬³ú…2Ib°p˜Åk‚%ûÍÎhâÕJιð46CÛÓ„EèÖÐÝŸõÆ$K’%{ÏKý{Ø(áÔ&;2ßI=MBŽ7“Š·seäÝ ½î+Ÿây¶]JEˆ< 5}²©¬ n®i#. 0"z _8x…îòbÐá–ù„Ë:ü„ÿäˆò§"ÈL\fÑ#kÕRNà[‡+(åÓ»Ý{ÂÅßVEã­"3_5Αãd°ÚAƒèКÓÑÜÑ-ÒbÄKgNÅ‘80SÞj­¦@kJ Ë©\⪌ob=§vWBG¯JF–B æZȤÀ±Û\ÛŸkûêƒÉ2êõQŸ#%a—dåüt™Œÿ‡úpxQR$Ê'Hú/.[Þòq[,aj"&Uñ*ÔŽY僠>دlùÅÏÍN©Bìý u—[µ„™ì`ö­‰ƒ˜oBûÁNœ¿ëDzX'ˆ²Ì¡ÓTFN—'ÛPó¸t g=©wê¨k\³(Þ¬óÒ}"¾"â]çŒ1+§þÛe¥ÊZE4§we„k ElzÛjSIµ y³‚2v †n÷OcâÜåRÎþ{ÆEM´boëCìD2‰|BUŽê’r&Ë=Y°q_êWYò¤<É| Noñ(ÆŽÜÍ AHzãi3Ãj1¦¬ÉŰÆ]MÆãŽÊì±ÐfVp²Wü„}òJÞú¡öÉ®óÊù,R¶qÔxa†ÅüM¿ØñNýaƇ ÈáβJ& åê)-ÃpñÞPª> 8\®fµ/; ž®÷›{f¤ACíÓŸFÅ£µÆÐ‘éy¹ ;à ŸC;'}ë3˜”£—„–Qž&ôç9´¬>ÆŠ#X«¹*t…Zær«‘™Ád†Ë‡¼ÒKN”؆#’<š¦A4±M)~ó»ÿªšA–ZëgKýÄá¢ÍAwLA&ÄÈ,½¡ìõœ”%’/|XÃ2*šë:DY 'qQÖÁþB-R#²%¾Í^QÀ4­±ÊXÒª!ÿÁR±þ¿Í?Gï_ù(ë7W4F?¼Ù.yXÿC\íäd¡+d”áÖe L‰Ý‰DçùBæ‹âó§ Mú4–½ÌF±i2þèÍ¼Þ j„fÁgÙáNoò‚l(w—åÛšD6äâ&C.&X\z8\ü:²ðq"¼–*é­pLwòÅbÇM?Ý¿®çïªêcÈ2êGú,}Ùìæ8D¸RÈp›§IVàcXNËØq×ÂÄ÷ ùÓ©˜ÅÉ”(÷ÉN%rŒ¥ÎšE¼ Á eĈóX­;ÞílVD‰V†[-Ñ"/Öà°puÛe ¸ø!r^)Âe?qœBî{Ž­CçV´’x½X'SV®U@ÊìÊDÐ-p9Oå&hN§.</-¨7N¥ ¦¨zê˜Êæ D=GEq_Ž«£§l¥t®pe‰]¤³±’%Rî6 &Qr"ˆ?åJðü}í_$Yª–GýúÆU¹/'^‘äÉjH‹Ãs‰Î@Á2û])8’)Þ!²¡T/ê}ùã5 Á79}ÕFQŽÚçõ|‚àÒGR eß.¤õL¾Ð R@o¨kë 1ÿ憋Eǃ—[-îézDd™’qœÂf± “>Äì½eQ¢†šhÒ êƒµ­%¤•s§Z9ýt¨ql¾Î[Bä}rwÛ 4GºªÚgi$vE8Ó|ñS <Ú@Oœq‰SãÍyßó,@­$_¸Fß' ¥xúmŽÌÛUûG“¥ÖúlÔoM]³Me‚L†™’ž è Ëë×õβ8lâ6™2jxùCžy~ê£#_օ掗B4žíÓ…GfFvœmüqå¢I%¡˜ŸØ´>âL\ÿ®•N#&‘›µÈÖ¥òÞ³í¢ˆ,‡Ë–“¸aâ2æ¯ ¥PS 4‹Ð3[ª0Œ;£W8eÐ,1wËyÚ=”<$³Ud[Š8ãR:Å&þ75€ª$¤¼ìs§Vk%C°@%ncWÍ'“Sž.…àõNðàô)þ 4$9ûÔªÞ©è[Ÿynª ¢ñCºƒõ¹€•.a²—”ìˆõ§ž‘¿²ýwíýx²P]2@$wh%S¼Pbý$…Orçrz…R(™â~ +±Qº꼤HJÐÒžK)XÔ¾é9Z›µ}ÄÐíÒ¬y<òë.+ÓGÕ½ð‘fW%sY:pvØWbi©p>Úo|±#o 1Ø·¾²ÐcvÄìEËÖÇ=ŸpŸPFkìà\ÛY“é6Y)´ÙœËœWÆÊôLDt£Ÿ6¡KA${…ô^ê`Bç&¨Ö¶›á‚x‰âÈGTLeøÔÿÔÊì›ê[zÒÓÞ*íO ÃâSï9‡î¢-íûŠRè£ÉbQŽ·/®ýx²œ A¸ S¡e&”9 /©Ì|¡ÌáÖËŸ©Bµ ˜RH˨IsmÍÇÔ?+¶ÿ0±"R.Rx$ó=r:ãVpQdÑé¼ÞÓtœÜÜ*Ϫ!÷YL¼Œ“w;«ž¶ãùéX™ZÐãp(bûÈ©’BI?:^d_¢0a繨+ô¶y#‰F²’ñÆÆ\ºðÙx½ûÓZö<õƒlóÐSì@¼ð|/ŽŽ¼óÁÂð®á#¶ ž&\|A2hú‹Üz=u×–V2žf¡d¥ÐG“…ÑJ‡è–)3¦WÊgù©eR•œ—y9㦠Ó&0…§”9Š™`ÇíÀvQ°"jš3ªJŠfŒÑcµ‡µz)D±#ú„Zág m:§cúmtE‹G‰)âf¾[7!zÌ~ò”écúU4š ]g(sĶWèy^éÐÅ\ÁÊ›°âø˜^ q†‹äÆé#}8Kk¸¨€j¸ˆGïT%m¾yHí[íLA³Ðòj¦Ìš[š×vh§ˆ«PLè&_²ü âœÎR¨ôeÂŽiÁø¡v—I>Û]¡ùõG‘% ¢cdîÚL‰'s°Í““õÑ"ãÇ>͜ģø%'NUÕÐ_á©üÁœpƒöøy¬^éGI—-‡á2üèlà íq[Ö*¢Di³hÞ'©­Ïìf^º2zTÕ\Úô"ÌË![¦Üo3÷'ñ½ß< .F泃ë(9‚´rmžEõŽbu¸µ9Ý£!E§ŒÆäàˆ7‰L¶´o"úàÈæ©QV@áéÚ(ò³ÞÚ‰~öÿAÀÅM– ñÒméR•ÅD€ ÜÆ„n Ôy§  ,A ãqðÂx”õNÍH2Y7kh¯Ðü_‘¥–útÔO¿µå|½((­èSAä»!—K<®oGtÜRñSŒ¬üÁÁ%ÏákJº}KíÑÅÔºÐ'²8 2Ð °Æ“†D Š£AÐS0Ê0Ôp¡Q"2Úv9ÊábjE±ê ÎÅ×…Üpñ£*}ÆX³¹e Þ Xá%›,Šu¢•Ñ^ãÉ1‘X¼|JY,°<@AÑøŸ>qÎ ®J¹#C?HÝ* "ï™·¯î¼(Î͘Ê?Í£ /¦vN¨ó‰;ž²2¶DG‰DfÆ”] ‡e_æ×µÅ€ÜG“eÔëRŸßTCÄ3®Y ¥*áõ,g¬ïô~߯úáVÁÀ± üQÇ¢ ƒ–´û/LâêõåÚ‹þ^m3N­ZÑçÊÈbXaè–ãøñn«ÚÊ«{+Ŭ\Š9*#ß"”²x3hÉXF¼ß^µœÍsQÒά|îTIqœBKwzÌLÍáïzMäÆí´½ÎzDw¹¨zæÜ»n² h.t—:´–› ]r!^MS¥§t…(oÅ‹W4hûË·yÿ8—ØÖSRE5µ'y=²\Ð6Φü8²¤l±O…$Y¼ÀñG{ Ç ÚÜîœ-¯t.çn¹ ©¢²Å¤Êú`¼´ |XNñÊãËCÁR/t©ßÿP¿ OVÇŠ—<¾HPbÆ\_ø½¢½B¥$X©µVy15‡”ËS4>·b¶n‘©ª—‰ß+4ÀçË–óGÈÌš´™ÁÊ>çOÀÍÃ+Ÿën_2;’4ª/…íò’Ä 8äUùG‹æ©ð1!#ÊÔôòG¨15)‡ÛâÎË÷‚F«uŽtVþœm±ÒédǤ;"ESD§ÍD>é¯ü_$¸ž›ð¿$˨Ÿ.õi¶Ÿ_·bÙŒL®d¬vœt ·Áþ†Îå‘‚SL|XΰâµÒ²t°ÖÃ2sÔú~óÓ„F­àË¢V´ÿui‚h ÿ^ýBÑab‡òSìlÁ2Ž[ c=£ºí7—ÏË=*ÉB0´‹ÀwãknsØÈÞ­P•8ݺk TŒU@ZÆœ.iaµOã†5º•w«[†Y4Â/U"‚t!Õ~-(ˆú©x¡¤‹”ÉbCÀžâÅâO—pRŒ¡h²hŠc.'y½è—0A–ý/µõw"KÕ²ú`K‚Ãw9â:‚)ôaçNS¼1”åÝŸtjý€i—3Ö@&I¬ÒSŠ#waÆXNÒn‚Xäà zÂUñÏ¶Š‘`ad›†¨ðh*ƒàÒymuÊ\ÀŽ(&ðy–1öºšg™+:;¶!¢[6Öðy\Ó,œÈÍPZÃÄ­ÚC^™±©b;`¡×<ª$­™âȶñ©{†â F³Ñ䌼®m¿~*ŽÌÊóˆfÐâ`Ï\|½Ó$‰ÃÁ”ž¿„ΕóüâþNd©¥Ý®+$=³GÃ{I$Ý‚ÅÇ-2I"7q¨å^xÇÝP’Ûš‡ôˆ7›ñeF×G¼;êEµÕPçhø¤ÜZ>žOgÇÜÁ-åO«^ïßo›b:îÁ—D§Ù”K)¿ŒÑŠ%ª!ÁèºëìˆÉMÏ厯aÅË"jœü,ÑÖ{šwå}ôvVX¹N–<Óßl]CÜÎ}ïfkìÝu6¦lùt=ÒÙ ï'/;‹#'HÚ·Ãb_S± (öC‡}»QõäiRÉ—þò~ô¶êïG–QŸ,õóŠAÛ#y…D3úÍø¸a©ø­·“–Ûòå‚;kypC<<.[ÀJ °Ò“$¢ 5‘ð¤Áÿfµ µ XqÁ‚01Ü ”Žw”iÁ”:Ö¸«b¦D"•6Mù‹«Ëx×ñ GêjÓ®LÊU³P•bݵ„º,J£§‚Z‘*áÖtŠJ-:¨}¦ëO¹¤G§¹ÛÞʼ7/d©(€ ÊüŒ•ìØM°Ìˆ‹Úªo³8î¶Dûù®÷Ä %b k&È2¿ªý/7² [~9êXÜLî{Þ,^2I-{œ˜Â5†qïm$VlÖ–¦!ÞŒ5ßâ,v<¼U¤€·Œ;Ëû`,Ãw!.« ¹™;°Th­t [ƒDĹوéÛSíããüŠ}»P=|ßЬö_´&ÇpÓgñÃ|¬ðÖB˜`¥gê¼2£õ19¦þ­%´QþКrjK7†¦8›®à2ë]ÿß8)B ‘x4ƒr¤¥‰³Ged'-œ]˜ ÞGZJd™n7‰ìt âÓ·c¨[äf-+’ÕÉBªPe`#-cì†+‹úÖçý'LëG¤Ÿ'ßN¦\¢2ò½‹âL§hý›µ…»ÇÜkÌÁÝÌÁ¥»ôD¡XùsÀ…·…ÒÍg†#‚ç%ĆÆÊâyÂmâµB22bÚ¥f, sz´ÿ¡æŸþd©Z–úU%»ÈäÓLñ5Ó„O̤$SÒ©Uå·qg=0ÊìVû¸ÛRMÎ,¾kÑÖx54³säjŇYFh['”åïÆÿMìl¿­zþÉÂêÿõo~^\ö}² Ê®³ Î’L¦è•ûò‡õòY)æéB>–¢ÀñѸ%øRõ°Š`¥Ç^ú`}ŸˆÃa:­€4[Á Y-4ÍY_6÷ˆpM®i£³‘rë³@7nã® Ž¨üÖ $Lx5„la" ‡%:D¶‘+­e±CIw[lss[¶Oo©üé ?U¶¨ÀåórgúŒÜ‹,pxVtŽŒ/ÑTÎÃ. 9ž›†ÅA"Ý—?Õþ?Uõ!Káã:\4‡í¢ë}'ÈçâŒ)!UìjLq b§.UÆi™oâP…#`žåa£q€Æ‡ý«ê¥á¬Œ£a´BŸ1jy¶¨iÒ-$„Ìаœl—ÓwTéIë•w¨}æbpÑW+Ö*Ê– ™% 3jö鹨ôNkQΩƒÓ¾5Æ'\Æ-Ÿ—33¥Y¿Hª¡:bĦA~â‰É‚íh°fö}_üÔ•î—ò¼œ˜‚ƒ« |'‘ÃÅKÇT=ä‰7Ålä¼)ŽÊ 2n£ÜŸž qÒjùv]³ÿ¦æÛ?,5êç£~ld‰±³²Jç¾—œk IÚ´®GòàAŸØ”²ÅgäP"<_¼UD¿ÙUL·±õôec¨Yô3æxUMäÄalß-[«ƒzà‚uÒHB¤¸lék?*0ë#sv¤vÊ–Rp&‹[-®V¼Prï6Ü®1øÛ²“7PŽ+î¬ÕD¸0È•*O¢M’&—jEÚG@ññ9ÄK—¥±ÒJï0Ìö(Wƒ‰;›ˆ+sRŽpË,G0å²åÑ¥d¼!‹é”ëCüç>·¡b§O]Ñ0n•?ü©f½YŸhî³Ð‡'˜çBá½g’Ø.Úú¼ïUR%ºv¤¦Ïs¯±û<‹¡$à‚Na±›°Ù_~Ç`ˆ³Ë8ã‹Y-Å™ˆ—äKz·‰ë4¼›æ®_,ÿ$²”Úϧ®ó*‰¡•ú¨ò§b<¤TñeÖB¾­Œ‡É™qýôa4IµÂ ëPÞ:DCV® ¥ËXí0'6+f5äÆ-Bêá#-±›™yÏ»Nœ^Yás°¯g±§%ŠßzWÈÅ‹äØôí_N¸é²ˆÃtÃÊ=^ç4*#pVû³ñ_ðV$Lö*˜eîìi°…À Ÿ~' L°Pò(_©Pìõìõ‚Ç}«ˆú(Oœ³¤‚ùUÍ¿üSÉ2Ùòâ½äûJgd%’Êeø·‰Ðൾ†19b­Ç+þôÔŠ[h<å¹= £˜Ši ÕAË'ÇUbD¶ “rªJ ™Ü@ 1(¼[ˆƒ¥B y¼à_WÙTnµË£â‘“Å¿ßYûÕ°œ`±9Tã£ü(\ØP:Ö&~(Ôœó¨qÀË&¯=#Îv9 © U:óM°¨9­å¼ÕôfpqÊðÈábk¨†\Œ˜½\ì0—BÆ]^p=íiŠ—à‹ßúÄmn,ºñYž5¿¨šÿT²TÕG}fP¸¯tX¹±õ<ñtYˆéõ©¬†|ÓÒ†c(ޝ;KµbU µ4A4ö²t¤eJ]$ÒYtê=[Àù•ª¤ÊtŠÈ¢Û²IœrhFŒ!&êQ2I–D®K!,<õFˆ ÚYãéíçä ôqû– È«†èiÁñnMU:[{(»œÚöqH#&ᢧ—ÉŠÏÅQø8;|˜å:vË#Êòáò~tqdÿO»™£Lò¾ªB°üÉ2FýŠ#î»?~ 5înÏäæ\×5ä t0bt§‘PMìse`ÅmÑ¡o!”2/ú…‹ÍÑÉsÑ2úОUAaÙ2/GMTG᳜ súR:/Öªž3…g Ú@ :ì[Æ[Ê(È2æ6On¡tŠM÷£\ 1§&‘× O¥2§o'²ÆÛϽíЬ܈«‡k§fgg±9h *˜²Õ-NÊÓÅu“gb‹³û/$½2B˜P9€ÎÞm(X _rìÅn¯gpÍÜvÒ$é‚åŸIdKÕg÷ÝŸ{¦Ü™,¬ä6žâãS ‚UF°†©\ë¡zl(î¤_¶¦ù"j_¹m¥³°¦êu=šÓr^˜èwão¥–R!3Gcˆ¦²0ãŸÇÇ1•[>Ú?f½ÐuÙPN>K´œ9ácöªíÔNŸñ×ñ>)× rd.“H! bL­ RtBÃV3e·zÇಣ5¸µ­CVûhcuQ Á–)®¨†4^Y½c‰ëXÑbá''µ¢[°h0YF­>ì?ÈÄõâèX3”÷ë‚u"‡…ÂçåTõ•Þ³;µ>Õât5^«p9ï—ÐV0Æsë}&ÈÂÁ·^è‘u Og²TåÔfž+×µâÎ==q¤ÉÂp­®†­“Z#Å¡Š#á2Óµ…6>×jÅúÍZO^1ÉÜ÷¼‘‡J§\Ì+÷Ò©²8ºŸÁ½s[ÞÕ¤%ôD–«ú€È-\F(LÏä铼åRÅŽÝ· H*p™O‰žô2Œ/÷j…ªÇÔJ9GÒ^Ñ2DÐDEÛHÎË`»³´†â×®tŠñóYL˜¸¿[fèV·Š0kG´™‡~1wdé­CÓ;¥`Â$Œ}ÈLY%£14§­™=¤Ï£] Âj9úÊ[5TCŒí»á²ÕÜ4V‹~ÁÖE€’^c’¤…ÕRöå6+ZoÈJžØ Í Å"£•?%¸d‘è=ÿwÕ_ÿÉRUŸWýèÛ˜m£€¬gÅGqœ8e¼õS~%¢Ã^ßä‘jEÁ ÓŒ‰«$Þ­nÍd¡74äÈÄs8æ×о)Ñ8Ò§¯ÖØf¢Ò­Ÿ,JŽeˆ)ìÜìîßµìs‚Ÿ‘ãïf(ož$Üñ`ªP²æ‡z:šÊEÅP‘9A5Í\IRÍž”{C}Ô2Žß4¨t€ˆãæ¤\fÎæžXÐ^н‰|3´;Q<ÊÿëíÑð(‹£„KðEdù[Õ—UõO–OÊ7@'\²Çìžá´ÿ±³À«ê¤ŠmY6Z‘O“%¦ãêÒ»½ð×xÉ¢ÀŽ­ R£^t¥ñ, P"Íz}h`÷È,Lñ/vX-^ù¸m))ˆSðq}úv©ê|Y¾ÜÍ­YF]ã“CûIŽ{æÔc®9{¯o¢DÛš%^´ì¹k¬îè@×®ãCN‚E×=ª!×/=n;w‹ ³V™S¿Yypc³*üÌýsRîZ¼ì—µO'wGIÒävü¨în¿¬úæ;A—-~â{:µYìD†Åö‘í!82ˆeH˜™… ÇÊ#e R('Yô"kªÅÕ€zºV^ó"_Ù¢eC¿„âˆ}CYþ P²ʯ Ñ*ÿb¼ŸÃÒÌIÂ$YÌKÄǵ/±6zÚèõ£pÍOQïÙj&úíp¹3k˜^™4•çÎÄ ·GS¹§WæôÑ8nqaŽØ¶8[í£ 'úx¦_w{ÅÊuXÜ…©@tBwx·¶ ÚÒ×Ót¶&øò® ‡å;@–GÕ/¿]°DàE6•ãÜl {‚<3†Ñ‡e¸Ãâ{µe‘µŸšiAŒ¨äqè,68§ÛBªè³”5î,ï35Æ.X ‰ºŠÕô)~J^°oA å>øA´cçk$YtÍÿ-Ó9âvŸ½,ùBAtЫQ¢$·ÖKžˆ—z®J[Š%Uêì­˜~ÙȘ~C»[-Ê¥„ ÁÉja%°«…|Ñv ¸!~'O@R¹¤ï›A濨z~‡ÈRUŸ²å‘åÝâªÉ¦O`eñØùbÎCìÇ×â¦CÊaešlIµâ&®ÌŽêq½_Dñbh1lÒȆ®_‡àU/C·c΋c!cy+@½s$ûkbÄçJ‹ =õKâvÚ_âßW?®Å* D.YaÁ°@¬QÏxnð"œZ£ k*ô ³-Pcw¸dQà×€‹Ð°ÕA:ê*†8­–i\ø¶ýDèšÚ¶˜¼×£€•?Vý¡ª¾[dY«~Qõ¸TáÖ]•œ²ÍM†Ä T.¨§FÄþ¢…|È–1 +R@ޝ†޵ª5HYd½g;w.íÛzÕ#y.³êÕXó2$jÆÔžy(VÙôž 3,bŠy+¨c‡ò æDœ»ÆÃ6™Ðeü‹Á–â3‰xº¬%<Ò­Ðóî¸J° Iö*Š‹*‘.|¦nm²vr& ·ó< çG´LóS¶&’Äá2sªv@ýtè*æÔ]&¬©`MžÞ>nGY yæ7UÛwŽ,Uõ“ªŸ9D>¢ ƒÙO°gPÚïY.•ËéÌ'ÀD¼2˜ëzı‚Z1åÒ¯`Êj™“ÅÏ”óÙ÷Mª|?Q£gÖãáRÅž2¹;lò^ q­Ò„KU™¹[Uãµ”Ôì–*‘xa¯Ð”:•¶µçLÕ´Ûi5‘?u÷à ý ]5ƒjb»øÔ\‰’Oä z¤¦ùµó )HMؤÛ:Èi¤¾}Ç33þT4¬ÔSŸÍÅ• 1@Û„iÞ¯¤{__γüß=²TÕ¯ª^Œ#7ÓqŽ›œµeáhÿ~û¸.U¬…İۅNÞJÈ–áÛšýL¹‘Ý"¯ƒºÍÌ­ÜYŸñ Zà@eÍ醋^|é_²”FÇ]-Æ”U ו5·gkS%YP+Jh¨†0qÉ|™Æûêó/МUoõ•Ì1b«’§Ý–YhÜ[¡&ê–MšzÚóþ핸)™Åp–¥õ˜[ìTø¸×pñ&‘Ý«ßýlýá×zõ9ɧËK0oŒÛï&Y^«>wš8> +ÙQvW%ËtMìfæÅP(w*ÆyA¦WõÔ\q.µR?r §ða¶…[ÍïÚKÅ‘i Ð2…üÆÎÓæ@ßãI00q ·Ýi.š{š³´þ¿³š4±«ØA֬ϭ‚¬°éYÊB·bžbÖöË«!§Cpqg .L¾DYt¶]Œ#ä‰A/–•&m<Ž5$o¶G#X¾»d©ªO«~š®JDY%GXÀ#b~§Ý†w[X'¾&|\£ ¬1¬œŽV5uÞŠu‡pÀì·´bNÆ­G£ÚU‘âé›x1èð´êu8l.ÎÿyTHïËᳬÜf5äÔØE–ó÷RWE+/ gù&e&V7µCy gÇiAD·zê+,sÂ#;tNkäJWnD„)Þ$"™D)_¶Û(Õ "Èoë¼;1¶Ù‚o/ªâ‹ßa²<ª~Qc½-0 ¯ùbr†˜5Ñ Z2I>°âEЋ°r0 †ú¬ØhÿñˆÚÐÌÎ-&[¨}0'Ž,ФVõ*0q¥h’œ)p#¦ŒÃd)—0Ì­”fpÅ—Nj¢¿©ž> "å´¹ˆx‰äó¡}}Óqܦ_àÅ[u|*Ž«XóƈJÊt—‡5‚…M»èv¯ð_ 'KÕ„)-IjëŒADu áE/ Éâò¼!Éì’iQ@>gXRª°Þ­°/Žø;Mö@ÏÇýD\J¨äªÄÃëT4¶,[BüLq•“¥‚l1¬P E³y«Ù.eMh]G—Q"BBG  ,Xà‚¥­™¸>L¼¼ µ–Ù@s/ÇÕËVͼTGî³°;·¶?èÔ*ÿø Ú7\’š.U KÖD]KÓúBOZ¹¥$]gÕDâì`±æk¡ Ò&NWØ}PÅùâý HºŸÂ‚ì:#7¸Å¬ñ[žFqäMh{ðÇã§¾d©ŸW}[™o,Û€ŽßŽÜ…èÈ8vË#i©ø‚´e2 ÀD–?€FyÔR![ܸe🠄IÍC°ôìÜù£"HkN¦š5™ÒmoV<õ߬=´À”ðYÚ¹ôq5ðvª‰ä×V ¨Æò¤ºð¡© q¸jx`ÐÎ*w^À V®#‡–ÁmaÚÅ*&Ùh?ÏìWEqô›YÏïYªê§5>Em{@œ{‚84Û–]3ÅìW1ÙöÁ–Üô‹t ò„¡8åA¢ƒ~OÄiMØ+ú…—¡´Zè4O:ӌ҅“bBƆý ÚÄ9ÅÑ<ŽJ˜UßS²ÔK-Ÿ[“})&U*9’& j% Ÿº<–%°R×ÞJ&%I: ï 2Z3kµ“åŠ~‰bäŒ?E° Vš§»"Fš5Ña…’  S„ µJèi¡b–^9Jz‡oºØýw~þ&°}#Kœãݳ`Ö„5^ é©+㎖íýŠs¤ps+<—îìèøÛ ÄÐ ý‚rÁ»…Y1/WW'.ä1h²\:Ŭ–¤ÆÍÆÅôn¿œõ®¾ŸdaäÑÈú&îæŽ¼ÍÍ‡Ž [AdX‡Z¡ e¾lt…DÆ=µ‡| î8hÑ?Æ—õ-EN™ÅŒZX/©"ÙbY¸6;È,bÊ!p:E¢²y×,>Õ2}w.”HD?2÷T‘IÄà×êŠÛÞ-¼è8½[ÝN5Z S”i¸°€~ÖÄÐÊ•wÄÉ­‰3T ë]tx•Tañ–mžñ€l6Ïúj2÷}% 5Qt‚nn2§‚(Ï—c·NôV²UÔnHÔ>Ì¿YNï°éþÞ „ÏBÚ uÐ\ZV4D؈„6‰63e‘õƒ0e†õ†„ ÖOu—ô´Õ 4A­ñœš¹#‹¤ÄØq^Œ)è œêbFXù£Ì6k‘¡ ª  Â»Õø ùèÉÊ|s„Å~&KÕ´ÛÓP™w;ÝÄ-b|Y[pñ8p¡Iì mâÉÙ+‡-¸:“ëo“:è{N–ZkÑ6h§†Ñ!nIZiƒ$1"øzâåߨ£ß„$½ÙL‰„NÁÐUÑD½cýfù,ÃtÊÂ-]$«}X³ 3wyRåÔ]†)2\¬Od1ŸeÔ>J6G€QY¦9¸D©ãcžî."Äé+=cLÜÙ–­qÄ %]iNÜLÌ]—-î¶Äxˬ‚Ö:3Å^ô^RA +”ÜgÁì¸;±¥l÷†<ž>b|!ŽaÜœ¦Ó‡¥¿S}ßÉR5>©ñy:¸~‹A¹„Y{º |çér§VP1æ?rÌßhbò¤Ng&Xı,îÔúQ<]NÓ+Þ-:!£lò%¯eÄ)ODtËšÐE‚±9½ŽAëd)É 2¬9¡„>µUÑ„¾²es b8퉩®;A/ïÖ'SŠ-E»ËpCÅ„„ù(¸˜*ñŸº‰ã{ Æ÷Vî»B¿Ÿõõ¬ú—!KU-?¯ñ#ï:{ºµL´“£aÄ!Oé4޼‚Ÿ…w±Txê]¡:O¸”Ó/S€hÓwaç!¯ÌÒ‡ÍîËâ‚…‰8%ƒ2SoM-0E#4\¼%´r[&dŒ,*—йŸӤΕ‘zF³(y̾U qÈ{L)4k8GøyZÕC2&å0kM§ô¸žÂæYfgÊÖ&Ó¯lˆ‚ì¸öY‚#{ĦAr¦.üsT—|žÉõõ!XªþµÈR£–_˜áâeN~$ÙΠȦ`FD^øŒë¶Ñ0û6ë ‰GüBɾ¾(ƒq;¡1ĶCPBŸ¨q€‡>Δ_ FU5ÌdMÈëz¼;§ºÚÔD0ˆà ®m¨˜Ùõ‘¸p.‚ˆÍd™¦X)ô ¦P Ù2­±êmDÂ|1ïvNëíá³(€ IßÖ¼G3ˆz*·ñƒœIï–ÓgÉQºl0Çí»ª/ßù/E6+®¿¤üÉ9ÇD2…Û{¬\)”Á‚8¥exÒ$ öí`pŽŒ×A’!dFÖ6É‚ù2|´_øðªÄ‘f•B¦YJ1³-gu£|«}Z²Ô€,3Ž òfìpEóÖúEW­ñ&‘2g¥ƒË;«0Vvª¤j!C²c¶ b¾˜œÑ+ ¼+ä³ü à*PvxÌ­?µÃnÉ+C­X’G[ø»vÂ'Ô 6Ío5"ü¯I–ªÑMèkÃå2“V‹©@‰’’NNº¹ q¬€Ó ¥ÃYºD*¨á¢6-î³8VKøâ)çˆËï@3ÿ_¼Þq!ãU”´}@'-CßÇe‹·|43%Í]Ûñl¡Ó™r]õÌ8uEÄôäCq§8d W| ©¢àí¨ƒfý«“… —õ5·LYkžpU‰Ö$Vrÿ+§kuþëéüJ,á“/]@I˜`è®éªhM¶øø6«¥mZåQÊòY™Ïâ ŦÇx¿²”‡§, –Ñ2å/Î àâa4®_éÅè1$![r¢š;kÍ É-ƒ‹~xÅ1!x]*”{¸¤§KœõQqâpýn«·ªú!… —åçÞ?Ž3ŸO&¬ v\ÌÙ°¿Óï– IDй žXù£ÀúA8»"…·tŽ´ÀÇá`‡x¡¦5(™uî=/ïDÇšù·ZºID;˶Œ&ÃÇä:é?ÊP Qã aÐ&^ U»$Cm ½R(­aRΰâ·ô‰ôÈ4Ë„ª ¢RÆÏL˜QI˜·ru:Ô Àpñ Ó×õ;-?ïÛ¸½.‘¢”¥Ð—{}3«~(d¡*úi-³UOvš%‰•ˆO¬©bV€uŠ'ÇÉpñ™ºs¦Ô`hBÈ P¨€ªüÖõI+…¢4¦ Øò$(3 eÄÚÏÆ”#&3ðY&@ñzGqg¼ºSªÆ4±««•ì=›³Ã‡oùUë˜5«[ò¢1Ø®¬· :…Gìðnt”K… ã‡oÛbò ŽóLl#âÑi”î/{}…½òC! U‘¹¹YåÄ­V‚‰ñèø¶ñÌšÕ%Œ´¶À‡\èõxÀv!—'vb …:·1®2,ð%ö(–(hê4ÕBuc'*ˆŒeZ&Œ92TCTL#¬Ü!Ö\VCÓªüS1ø)U6,7½%dÅ‘1¢¬ë¬dÕ¥ek°.îàzÉeÜÊ1Þb;ƒ&ßc-A œ)§d}ä™"Ÿ ±Mϧ…h<ÿçY_mUõC%KZåç<ÅlËéËðQ+‚›&4kOú>,vLØJRt”°o§l8âuÐå„ˈ‘–È\›J|ºß‹&£ŒËŸ”C˜hÛ´ZϪ¡Mœ2ø,¢×§Å›öö6¢jšø´‹«’Þõ““rZ¿»ã’„* ÐP:=5pðkü„ʱ›«bà ƒ„¡²¾i™œsªÛuË9A3-vå’ÆJš¸ïfýv«Y?T²Ð*zü¢­¢ØŽ˜zd¢>üé°8^9Y*Æo6›#ãsý¬Ùx6|­‚˜déÌZ¼ù»º5Rh ¢æX9Š"hX5Ä#7qê£nl|îXìÕb½â:'¥ä¤ìGdºŠN–0b(v R(™Ó+zêã*@ĸS[,6UAŒ>'¯×w9ÏÊšÈÞ©MaâÒÁ½†‹M÷F~iÁäÇêw›Àþ'KÕ8fsoÜ–œa©ôVÆí$îè$‹1,®8´%‚1ŒDEÏÈÏ‚¢h:òH—<6óÆVi+s(…Nô1ˆh ¶À ®Æô [P.¾ÍâÞJ[ Êy-Sàƒ*§ÚÇSB¡Tã#!’²EçËÙÁ{Ó¤zë©»J$#.gºs4'kÐ56†»ÿÿí{ÝVrÄ‹¼óie[N€|ÿ¯—de[~hs/OÐXø¡ÐC¯Ù–äCD³Oß]ìûCuu“#BD‡ƒ‹€¯,â=Cš)tg*€]2r/®©ÙDĤ_K²DœF •œC'\zcîû‹~Ý$M²àZ^\8l¦$áãñ·µ»Ü=@ÍJ:€&LFC›¸n®ÌáÈ-’GΫ*P–œ A›@•¨ã‹ØþìG‹ÇÏ0PVèð“#0¥ñYv‹tݨVàé‚ ¥Vhâ+E ¶H–*9‡hRј)h[6 [ØïÀˆq+sÀM ƒøšbkÜâl‚‚Í:ýkj%éÝ™_H˜dÁuz«õuJî°$J²!jV]%; Ì ˆF1T®#ÿó ŸÚå u©ßÒ‚I1âG—±²~©¤PCû¶’Ä )£ÊàH( Yö0e÷h­V6|–¥b0eÃÛ‰ÆG=ÚtR0{¶e‹¾)uJ 0aI‚$–Y¼Ap`®ì^†ÓhÚ1#}\¾šˆû†²TwpìÉtm¡GpäVÈ™r‘”i† Ž£Ùó8è}òQ÷›Þ`e’¥¿V]¯pI3¿9—qûõ¹|¹ùH¹Ä& OÑažnõ_XÞ‰0ŠP.¹À[ÅûvFîw U0Úïtg¨\Nư è°·l!^pS1Æ=¡n% ½[Ðg¸uâj?; ¡¥bå:ÜÐÂ2Çï1ûûh^t®ûf‘;,@Ä`¤fÇ1 „|´HGÆJÅ܈ûÏg`e’å#®E×õ]n`%6â"Xüh:+þ3ònšB¹`¥%ú }È—4nMdYѨå°K.Ë Ü¤J¬ÃIééZ¤øqè´â=Ãh|*¶«RcP΀)ÀÛŸR+\Ï…ŠI+w„‰kÜìÁÄÄK˜)ƒO.×m‚ #îà΀ø\6†J<…À¡BIÙëWˆ!^ÆËóf= ý3°2ÉòÑÊeÿLTöDiîr¾Ckƈe_Fùv¢ûTÆK•a}S‹ÍWð…³g5fmkµx„d"€S/ï°Ô¾ÆBã––­\€vÉd©I£Ñ,ªÇXÆ­X&ë†7‰¼;gš„Z{ÆÏ z¨>%ðbþ.˜bÝáwÜÚx6””±î@†‚·âÇ^ÂÈeÈëx¯?û çíÿ¥V&Y \0-²i¬–¥y3ˆ0b›Ãý—~-æÍa¬p/Î/1zâ= §kIøð„^ ’ÄGn…P,-¹È_Å>Zê1÷n‡•z„œY¨\°»ãÝ­Yà†Cèa¸8i|ÐaAj+¹æ¢ýtt‹-$Ô ´ †A)[ ’â.ƒ•´r‘9–-ý‘`îî–í»ç 4Éò ®E7ÿõ§f ¬´n®• û#œ-Ñ1…ùâLh™Øaìæâ1<Úfä¼_ ";03ºŠÿ[€’šFK>…H‘kà¶Ènã³d74¸˜+Λ¸ò‚>5#øX2„tD”ãçÁ\þÖ Ž@1f¶_ãÊ&ùù8”q®Lèð±›UôôiÔÊ$ ”‹§E ™¢±“E›ëù à¤ä& ”äIŽ+à‹O^{©Œ®çB¶°3Rîã.9oÞ¹S•/ô;Ð8{n.% ƒ*)'¸-£¢¶ Ià]´²_ ‡ÅìÐŽÂEÑøÐ‘á,y`6|aP1låÅ.§ÑÐ)`œÚ(ßškeË‚Œ±ò©ÕÊ$ ”ËÿºK÷÷U±i‚šH6ˆa¬4¬Y:ÁR™ à¸³çØ …ûrìŒêžófÚ·æQ‚â")Øpœ!YVø,å pL1–º¼ïú&ôGì¡ VD·îìH9Ã13˜âÍ}$„ðe)j6E÷d^ pÒ5ˆCžd¦ÌúáÓ{+“,T.ßéôº™ 9>xä;‡Ù4‘/ ËÀÛ†žLW þs SPzij!w@XÃ¥Ã"(=ÝÈ›,ôk2…‘Û= yB”cf“ÅI €ÞoS*IÁBîpÆ<$ÈŠ‹‘­îM7'¢#ã¼rÌ̆H|)QfŠ\•-•ôhM«•ÄP¶? ˜µŒ]vá:ÜEI–?êºúF§7XÀÍy³”ÛqIt: *O3%u ¿>GšäRœ^BJt@9$BOIâ<?LerÆ úHBpåa3ÇÌòýˆ7††ê²Žà(šòÖ ú ÈÞ)[˜±¨AC$Rc$kÔ²T‚·‚#r„-‡Ç)ap,Ò¯WÓ¬m†ÍÍ/g½?ë½&Y—ouõX¡B)B•„íB²d˃u8H˜vkÎÊÅC¢x]h·Zê1 У8PØ Á"©zúµB¹ißr®ÌƧ2P.{¦þvCñêõˆdRøÈÍŽO-^ðÂ!ä‰ÜïLœ1+ü]¬Àí<ª@2•ØÞŽó‰ãqj€Jä/‹·ˆ÷àÃY?+“,Æuz¥ë·Ò‰"½¶THŠ”-15Þ9îýÚnl”ƒ!H›íÐ-€Â1sB›,èzlà'¶WK : ,àÊ  MëÓɌ؇ÇPÈLjz„„1kœ ã{+éà:™ƒg™ lplÁÒ…!A€ §´‘?—›¯ ýø¬I“,¾ry­«ïÂÍňk/$ÉÂ9kŽI~ìÛT+ °ÈŸl¬”-äˆËÂRiÈr©$S›ÄgYÜüvÖOŸËty’×õÛ‚K¾²¸ÐÍíC¤ ïzÙ¸Uh¾R”¬‰v Ä,•öMYÖGïCQª`0”Ýmë┳g¡XÜãlˆ>K¼í`ÐaÁ´ÈȘ1KEy!NŽùHèð'I™Š…®'¥JŒ„PŸë¶äcÊAÎHÙÕç&õ˳>§k’×z«›ïµ®˜ÁjÛœÜèÏ!tJLyÒ¯¥§Ë²,b0üa%AãÀ@‰ÞgiK‚®á¢­3 ˆ³âqjv²XøŒW{@j0Ô¨;FËaâÆª‹R¤H$èn\@”Èpm¹·±«âJ ÍÚ|(Nq”áa˜7ýø™ûµ“,R¹¹åé^õ&nÂÖ “=M^,Ç[-KŽŸ 3C„‘=ißÒUA ç  nº¼HF m]’…ÝPò§\À•ÑÓ8,>M·Ëˆ ‘Ú(Áˆ¾W¢©dÊ– Oy·¼÷G8j×äÎCÿý ªÔ$Ëñ†l—äK‡-T4¼CÅäÈ™ÈñˆA¬ášœˆ2ˆ ¥îÙû°`U·Òâ‚aqøcÐ$Y@ì¹lò4šÚ„&nÞs7”XÃå—)"DøóÎbþ0áb¾àHÍ<(é“LI“å׳~~²æ›dù2®òt¯ù׋rµßIø/*M¼·å‚8 ÂÐ U’ˆ}$æ‰T.„ €ö­ b3 n$46]ïø×½ßs ” \X(ž"‘ >EÁHQN œ1£lËÓœUoA'©J¸·1 þŽ"üÚŸjÅö‹º&Y0.Ûå¦GIÈ“ô\3È #›#3«eÇAÆ^HÄàQJâ ­tURˆ͑ÂgÁ’KôD[íé*5 `áfgæA2" ŠA—¤œ1+@³WÒ.Y b¸ÿ–L‰Ì€ÿÒµ?Œc5Îko’”T%¬ÿ æËÐÓEïžÊ^‘&Y¾`ºèö{]ݦÏ"´6õxÒ %#ù‡üÕ LÜŠXN èÀ¾‰ƒdn¬ì3pgž=Þ¤*t›¸:ž:ƒ/¡hê‚ ÂI3§B[Š”ts+H…’“#1“€Àiì¼DTº,ÜÙnwN?œõî±bi’åË¿Nwºy«uõûA$ z%ÇV’¨ŒIÐÊzj–ƒ†(Žä8ÇC›‡b÷ÄÀmPÂmG–\–#Ÿ¥G ¿/Ç5ÿÊ3IwbxJ“…Ú$ÃÖéˆ)Ìðè‚­õ¶ 8Ò»¶è‰’)¹éúñQ}×$ gFßétÛ£„÷„H÷¨Øk'ÍćßHj–°fsǨR‡Ã2F®ù›u'qdý•|Åyìõ«çi©4 ó)ië’ #Ù¼Ð|¡Y‹Wœ÷càÖÐ%GÒv9„K ÞåxŸÝ}3 I¼ÄxûVIŽŸƒ&ŠAµÿ¢ÐÁøÊas“ž5RÚ.õÔïÚbÊC…’Û· šñöG'2J²Ð²õ)Úw@‚wëz+²‚#¼@„Ò&РôS«ó\蘄½‚xµL‹<*Ébãöýcí×~×$ ®Ón¾-ñ¢fã–³!ùFH†œÉr,X b(ó‹=0hhÓÖ• èà‘ÄáŽ?gÏ$ _ ¢TIç%V]šöGqˆRÔSðLÉìÚ:#* Åï.s²%F‰™s™µzF4Éò•_×otóM$” _äÉ'ÃÙmÆÏ@Œ±ÒΉÔwIª#¼Á¸Ð¾%Pü“Ž#uG¯„樒,‹É¢Ô,ðY j€’€ LÜñbìSS) C)ƒ\ºUj"&c)=ÝÌçë…??ê×gý]®IΤk¡î²…Æm k'…€Ñq×Ó'ómæE"¶¤tv3*S &·ZØ%¡âl(\t=ÏBp8¿±€;, Î_P¡à·‡ÿ²EÊ ¶ouC-#©Ÿ åzËãEïŸjºüw½ÍëæMé—õô¢`Q3ifŒ®gMv´ÍQÿ¯(Ê]Û„ zh™Š'G{/&c¥ 3$ ^P «%òxt×Ó‹—à c.¼´øàH(%‰OéòB€lŽ.D¬€*ÿÓVà&YþÎײêö[ù=élÒÙÅ7ý *‘õIB‡%ÔË1aÃ18€R'Aá³ä#ƒ„ËPè³Øë%b\Ó“æ °âGLˆ‚,Í¿¬QR†¦Œ*è{¢GÕûü+p“,óº~­›h½iû Ή€ ›ù+š&§Lf"Œ¢2˜4ÉKtvmá¿`)0J{%j‚#螸ÆB÷ÐÊ™Wz·®ÌñPòE|ËÙ¡[‘Ââ*ñ†Ú@¡B}˜$V.CïîÛŸI–É—»·Øv‰Mû¦<%zª$ƒ˜þˆ5’Ø.Áµ¶È(I àåæa{eèÔª¢†,é³(ûš%öå"|°ÆA#^2ˆ!4ð¡æ}ÅcµÂ Ç‘•+Ç™åuû¦øÂ¿4”4I%BÛ¥? Ûe˲âà™èIˆd&e ýÚ*\œÅKÚ+Jï³0ŸÅwB$Cµr&F,îû  ÌÆ$ˆS[*Oš×$ËöÌWµüB¾Ð¬M/¦…HtLò©38…ÿ" „Gd”›þJK…Ÿé¯@ñ¨ï†Zû–f “c£Á@ZZ©Öl›\,gg”É ù-ÇäHV¾8öèçáÏø¦ä$˼ÝÖòKõG¹ÔŸ&Kp'’ñ3*#C'…d{#6´¬/ˆ¨®Ãq4•Lù]¸€&Ášl‹àÔbvC¥Cšl8bÔ›¸D’ U™º²ðnŸ/z<ëý}Åê5É2¯»7µ¹{u¤È^‰=2ŠmWΛõb„—žÁQÑ’ÞÊÒïò;ow&Q2’/Ñõ †Ú„G O¨çì94 ê"8rÌ\ÒgÁeÓO÷ºŸ+*9YæüèÕw¥_bZ”ñAFLRžð´·oõ²Ï®Jv:>‚“Љ©s f Í 4cüÌLã­P¦áN8»=e6¸,eË?<ë—Ç’*ŸÉ5É2¯"ËÍëú·²-BœÒ:Å™À§}‹™4 ¢4Y|” @!eŽÉ’4iß{n†ÍdJ.æ*‡AiâòM"z(ÎË–¬÷6¬¡ÏýÓdÊ$Ëçüe†;•sEyB¾Ò„ÉÖRa{+¹±’¬AàÄxD|¼Ï ÀqÜ.Ð/àóly2€~áã?ÉN'Ï»™²M7åK!ËQ×–Ýùn‹àqøT8r,‘,CZ1¬¡2–X·M¦€,Ì'Yâ ce”‹¹œ ±Œ–-45´QZ!Ó3eÓûÕþÌk’å˻ֵ,˜«[N¤ ä=ˆùaR÷h‚j0DÄ4¬Énˆ±Õxz£QùP¯öèù<‡Ç/_“,ó:Tï=ÞétÍRoß:|;‘§&÷LéùB©Òú,œ\Ž“qÏ`ÛJ˜Ü?–r¾h^“,óú¸ëúF·¯KÅÜT»ä×_î€x?,àKÄú,>YÆKýQ&ýÝè}”}·Q4y~Ò‡’'š×$˼>enuu¥jšî¬exÇÛ@!XB­D„ùÑA[”p WÉäiÂûåR^ìv©ÏÓŸ°Õ6¯I–¹ƒwu]¾Ìz*Üœ®²"kˆg$ž²†×ü_öY%IÂå|©ûýCÉ“ó4b?ƒk’e‚¦(s}SÿÖ¥X“se™Ü!°2Ó_i¯ü>\ˆx=¿PòôTÙ¤ÇÇiÁ~þ×$ËÜÊ»©û餻WÚ¶ Š>DŒŒÏ’àHšä2î¶U_#éñ©‚1 %Oç¹½öµ^ÿ“u(îa3@IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/0000755000175000017500000000000012262230550022152 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/themes/default/graphics/block/down.png0000644000175000017500000000016112233761321023630 0ustar mathieumathieu‰PNG  IHDR “båePLTEÿÿÿUÂÓ~tRNS@æØfIDATxc>$T€Á¾AÌfI%·hºXºEIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/large_up.png0000644000175000017500000000017512233761321024464 0ustar mathieumathieu‰PNG  IHDR! Ëv|PLTEÿÿÿUÂÓ~tRNS@æØf%IDATxc€Æ ’ÿˆ¬ÿ$˜ÿÿÀÀ ÿÿÿˆ8& Ä~ ]‘ò¹IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/up.png0000644000175000017500000000016712233761321023313 0ustar mathieumathieu‰PNG  IHDR “båePLTEÿÿÿUÂÓ~tRNS@æØfIDATcd``dùÃÈ÷‰Qþ!£½#c½#ˆ G „ŽLLévIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/moon/0000755000175000017500000000000012262230550023122 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/themes/default/graphics/block/moon/lastquarter.png0000644000175000017500000000174512233761321026211 0ustar mathieumathieu‰PNG  IHDR00`Ü µ]PLTEÿ!!!)))BBBJJJRRRZZZccckkksss{{{„„„ŒŒŒ”””œœœ¥¥¥­­­µµµ½½½ÆÆÆ999111ÎÎÎÖÖÖÞÞÞçççïïïiÛ·tRNS@æØf6IDATx^Õ–ÙzÂ6„£}ßå Hßÿ1;2 $ MÚ«~ËÀÅü:çŒáí¢Ûqí8nÿ 8¼è]jk±ñøÈ¢“m#­$ã¶]šÙ÷mÛiFkŸbpµþ„²Q²ï„Pé¢õ)gŸc.ëßê²2*€!ÅR¢‰ÑåV^¹Ê}{hß×6ç”2J•µ½ŠRa_Ì{Á)˜ÐÑp¥•È!!ãkÛ/ƒ@˜àZ.Œsîòº¶ú­F<[?݃!‹‘œ1.¤ f]k å+°¸Ç¼ †hgFs΄ŒÇZRôþ `/Øþ?æÔ”-Úrt$ç>ؼfñ9ݲŸÖ±.¨ ë“Ü8©Ú»³Ÿ‰ ?šÂ1e´R#U)„àimüYâÚ11%汓EJ©œuã+&}Kù<§ÀÍ”1&¬ó^0!9¸òŒV`× Yj#V“ਅæ¬ÑéÑù@@¬²ZùV ìJ*f“D›Ÿ¢É´O©É`µ×Vrf'Pf:„Ì—¡EÚ\ŽkKZ Žl•™@ºÇ`Ž>¿D©µµÖR¢@k^s¡' ˆsàù št¦"ܵ½ß‚ô¥%Åyœ@&Ãò˜{ÆŠˆ ´ÛêÍksBú 4 îkŠ.ò±¶v¬5gk6Æ=bmŸšÙbQ¦C®­¬ëq[“V){û¸}ß/`Æ"wj \Ê¥®e½½%¢7æøÌ=J£ÒL (µf„{ËZZkž·k[Èô=9J©ÀJˆÖÇ `ŠŸ—çİH6Å”kJåÈ!¼=Oèý>Þ9>Ø´ÔR+%…áèÆÉ>ŽËÌup#×-)Åè¿>72¡Åþó; p[„Ë%§T„Â:)MQáí±H¥`Å”‚÷éú¸2BÎ'%Á‚è²pʽˆóÛ“¬°}§t#ç5 S83MðSZÓŽ‹BKW¡6L1Â}ùÄÏl?P0cꂇ¿¾½T£}:Ndá.e˜û¿”»Ÿ¢7!)?ýÌ5 ócaÒåÒ~û!-–ÑûдËаûïjNöÞ™rõßüxûÏô'Q:ÃÃÂIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/moon/newmoon.png0000644000175000017500000000142012233761321025312 0ustar mathieumathieu‰PNG  IHDR00`Ü µZPLTEÿ!!!)))111BBBJJJÆÆÆ­­­ÞÞÞZZZkkk{{{„„„ŒŒŒ¥¥¥RRRµµµ999cccœœœsssÖÖÖ”””½½½ÎÎÎççç)'û#tRNS@æØfdIDATx^Õ•Yoã@ ƒCJ3>r_½ûÿÿæ–# ’¦m¶o‹%ÏC>‚” Ø‹ÿDËiÞ??¼¼þŽ~Ú’ÑWÇ¿âóªÒ>D#Y ÆÝò>=¬ ¤Ã1îæŸa.ÖØ<ùêéþ\*@Õ)F'ÂEøðmÈrŨ_tcã3®~Wëí,Ƭ3æÐ¦ùÁñëºÖF7–HHÌF‡;†é†P NÉÆ[¡;€ÃgþQ€é9UÎÇO†Mißy!_®ø#›‚–H–Ð6…Õ•aEC/ã’Ȭ¬åàe·Ë“b³Ç¥”µ˜|46—‰”,¯Þ ¥ƒÄ¸è:X‡EAˆÐH`Ÿjê`ìHª“þŒ`smÓ0µtƒài×®,jëŽ(%xR¸W—Ù‡§a5ðjÎp@2ºC›Zæ’ GvêQÈ¡cDÔ4ÌÈ–Rž@ð-Åt°ÐûÐjW7RlF¸ƒ ƒúZAÁRôMžRUëEêÔ0#Ŷ[w ¦Pgs7<‚¥÷±<)8~ê¤h_vÃT‘œY ×ÍØ Á³ØÐè$ fŒB»ÂPŸ/†ˆáClXF„×ï˜a……’2b§ ½ñð‘]3Ü´‹÷ˆ(-Á…†Ž7¯%'P>Ä\’Kp(D¼ß¼Ê–Pi,0£0¯õ’@Çvq£ã ¶Ò ÞkfP \ýLì+ÛŸ ŧ#ÆYü­æ‡Ü¼<ù[M#étÏ!|#þ[m€ˆ¸æÇùÞGn ‰²èrvO‹»:nq^ku ëüˆÞ×´] §ÓpØÎ¢©7±ÿFbê±ZËâuIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/moon/firstquarter.png0000644000175000017500000000171412233761321026371 0ustar mathieumathieu‰PNG  IHDR00`Ü µWPLTEÿccc{{{)))111BBBJJJRRRZZZkkksss!!!„„„ŒŒŒ”””œœœ¥¥¥­­­µµµ999½½½ÆÆÆÎÎÎÞÞÞçççÖÖÖÐGXtRNS@æØf#IDATx^Õ•×r#; D 0ç0Qáÿ¿ó¤$k]öõ¾.¦4O}„›ä|ü#u=[Íe?ÿè^‰Ķm¶_[E#òl —KÐéú‹Üi¥Wê@z~‰ ëÏÀ޾T#…d"Ìöþ¡î%ƒZå²1õ=BÕïõ¾5J­J, Yϳù­­ yÏj”Â@¿eYwÓí½k^ÀÂÏåBÍ-DPÇ `vFi¥µ–¼D¤_¸.L„Íþ¹¼w aý*'Á~¸ÍFlþ xg!Èhµ’£a‰k.À¶¿'8Œè= ÖX%+.˰uቂ ö HàSJH ZÉ3ëÃc£}|ÍÑCïˆ0Ô‚4¶Ùe¡–øºÑMÀ^'@Ä2[0¬?YpÞ3rÊ1y-kÙ!`ÂÏ,nÖ8º\K¯)Z²2ÓS>CÏÌ0¡¥ž="Œt©è5üêpYžžNÈTlæÁFIÂÆß‹£x–=AêÍù”)‰õq&H€‘_–œul)'O£Ó›wˆxè…< wZä¸%j1C@Dˆ]‡zþ8Æž–n…,õ¤è"¬" @Pñ¹#lS¯­ç kš÷Ó6-QñÈ(÷J´fÈÁ3‹ ”Ñ2„W0¶ìçfªÙk2&¢6«|$y¢ZÄë ]k^Z´¤gÓz“x\Sðv@{B©¡Õ:9bµ5Nÿ ¬|gnÅ¥RÑ‚åÜ´ÑV‹Ûêã­ZÍXª×«‹àœ=îÁZNy帷sQ«Ô -Œ«Ã(ùêÁA’½G­™iÑçÑ10‡Áõ¯qi-’yŽyßs-^qCÍ9Ç){Ÿ;÷{Á”Áb;ö½¡’3ef6wûøZGJ€šSmýè ÍJÀLAØï>+'ͱ¶’ë~ÅIúyÃ7z¼úTëÑ[kÇÁä#hüñ³UKέïµô½'¾™Ðíÿ>r{Î¥åÒ{ÏÀ3ˆ5M;?#d©Ô}ï¼®«cùïu½ŸçÙsê·¡þ%u?ÃddøßIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/moon/fullmoon.png0000644000175000017500000000200412233761321025462 0ustar mathieumathieu‰PNG  IHDR00`Ü µNPLTEÿZZZŒŒŒ”””¥¥¥­­­kkk{{{„„„RRRJJJœœœcccsssµµµ½½½ÆÆÆÎÎÎÖÖÖBBBçççÞÞÞ999ïïï111÷÷÷2¯x)tRNS@æØfdIDATx^Õ•ënœX„·¯ç~ÆÞ÷Ñ-¼ÇŽ'S£A€ê;]Ý‚Ã?Îkí}þ!°L"Z eÿ¸”)¥DZ­Góû2§'Š"…ƒGŽ}|‡ „ÐØ‚·Þ5²™±©öõ+@Ȇ”š‰2ÝN%H‰6ûõµ¿™ÁûȉŽTƒ (Vk_óK•Áù€Ðs äê‡×šLt­õ•ßMv ÜS¤Ç‘SŠº'ô3Ð+B´œóíÏT™pŠtùÕ÷Eúg`×Z½b½#òæ8Ü)£kaþ( 8Õú‡ÜcÈã‘kÊ™%زô±U=ÄМ*– A4¢…L9åÆÉÇ ·×ÆÌ˜ %dKHF*!UªÍq J×ÌJ„Ú”ÙQˆjOÆÖ€cÄSí^[±¡SoTCÃ/ÐA!²¤#ÑÝ}ã>Þ¦ê­ÅàÎ"…[ÊÇÛê%eº»"ÔÖ'pU$w\Tº ‡”« "ÏÞ`GÄÜâAÏL;Ñÿ@£Xt["53K™Ð‚³ÊGx­ kSäÒÇ:§:f&Ûzˆn‚»yˆ%Oäì>z/„hŒEüÉÉ+ ÂwëɈ¤´Ø×ècü{ qŸZs.Ï3¾UðÐà¡a¾¢£›9Ǻ6îÙœ1?§T8ˆòÚ866†Ž½çØkX ajðøœ«úPQ'6oÂäźZŸ£ïµ^–zUã O Äš`Ò´%-·aªf軯óEjBkm?•–(½1ñ~Â#S`5í(hŸæ)†~¼>&•yH9%¯ÔZªÁ:Ft£•¸Ø‡´3` ”3;Ý´N8µô‰ÿ6ѾK¬8 ðÆ;]¢2;üsLÑûŒþ2•(ÚòÃ#¹'G2˜ÑœbµŸ7Ó(åx¼5‘ß[GëZÞƒH‘Ÿ¶¦=Uåx<^éž+5îç¹×Dצ êÏÛå(f‘râXã˜:Η—½Öˆ#‘Pà³–ÈX÷ð*[ópî=;T|±»Nf+1µ¾Ö äÚ땪}¹/¢šŠXs^èZ Uø¿Ò.Ug7ësϵÜ-›!ÿ/d"bwŠ17´fWÐ×w9d(VJÈ4z ÷…F¤¢Àžsañ?ѵ7¬þŠÇ3UÜ»IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/large_right.png0000644000175000017500000000017112233761321025151 0ustar mathieumathieu‰PNG  IHDR !5UÃ5PLTEÿÿÿUÂÓ~tRNS@æØf!IDATxc€bƒ!vªo€¡©ëB˜ôÜ Y/(/IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/sunrise/0000755000175000017500000000000012262230550023642 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/themes/default/graphics/block/sunrise/sunset.png0000644000175000017500000000042212233761321025672 0ustar mathieumathieu‰PNG  IHDRÄd®6PLTEþíêÿaGùVÿƒnÿ<n8 ÿÿÿýÍÅþ´§‹cK©‹~ü–‚Õ´©Ò’‚Å< ÿz$ÿ™3º¢˜õª@%—IDATx^¥ÑIŠ1 Pƒ§J÷ý/Ù&†ù+ÁÓ°ØÇ|à 7¾e—$7Ã8Øy¡¸¡[ „°f°YVÔìàty±k㸠ˆ`£U-µ#$ÅâÆ®—PæÒÿ–À‚/«Jô˜!Òn!ÒîåÎÜuâ_&ÊÛžZ¶ýª“6£r+©·Sñ†˜üÛKž·a k¿—ù>IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/sunrise/sunrise.png0000644000175000017500000000042512233761321026044 0ustar mathieumathieu‰PNG  IHDR Yþ˜6PLTEì°ÿÿÿÿùøÿY4ÿsOüÆ·ÿîëýuÿ:~A¾y\T$ÿô(ýãÚÿ្€ðà ÿÿ3Å>„¨šIDATx^}ËIÃ0 @Q«·,ýÿgË A‘Sx’=¤à%O,»ÿLxßÑP“Ç2œªl HÛ˜f|²ïKmÕ?RY‡Œ&÷¤:·ãè“én lq#P&ó<÷}?ûí¿&§õ‘ƒ ´‚»IRQâg Ã$‚>¹ØjÃ(s1cGàf#I{w#䦨 !EÜÓ/àùû„‚[6EÙºmÅí²ì+¢`Ï¿½3ü(¶=H«BRñî•¿ Å †U3À·_Ò½ÁR½®â2Õë…n”ü©ôà ,¬ìº:Š×2óŠã܆‡ûH{ØìɼÛ9„óãZò@d€Z­F^\rÂCѬ©iíÐû&C§¬fszÁÿ…åÅqӗͨÁñ½Q¯×p¸^J§Wœjý¡kûèÁµµ9ã\ób1Gï»\þÐ67Þ„Þ(ÿŒ€` ŒL­Ó´¡¹èr:Ú(`ô õÖ‹ƨÕaºì¸JþY^” fp™š‹¬™¹ååM&&U/ŠE æR€.-ÒÛÚOŽV}¹n²š_Yub´³ò2¤ÿÎøôžY¿;=e‡ ÃIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/34.png0000644000175000017500000000204412233761321026537 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿ¸¯ků5Å·gÑ›+ÑÏÁçãÄèçæîîíðêÌñññôâuõýÃýýýÿ©úúúÿ¶ñݘ¹’%Ñʳ¼×·Ù´4Ù¸rÚÆ”ÚÓšÚÙ;°[ÝÝ×àÖ»áÌœâ¾tåÇxæ­æÞÃ纾¹–è¾Gèک°DêÖgíٌÞï·<Ã¥7ÍğózôÚz¸¦Pôç–ôôó´®‚ööö÷×WúóœÆ­&Ǥ ÇëþâQþôŠÌdzÿýâÿüÑÛͧÿþóÿÿüô߃˛ÿýíñïÝèÔ•Ù¡ëÍ‚÷ÛfÕÁ„ÍŠñÃ/ããáÓ°!Û¨6Ý Ñ”Ü©Oň ŧgõæ²¾»ŸáÆDÒŽ÷åiøÐYøÕFø÷ìøøøÓ¦/ã²FèÖy×ÌjåäØÔ­ æÌHÊÃŒÿÏÿó€ÕÒ¸Ö³JɳJØÑ‡Æ¢XÀ¹ñÌhÛ»jÜ®^íàtǬræ·VïéÓ¢Eèâ™Þ–ééáßݯ÷ôÉëÂhóäôÏDз‡üÞ¼ötRNS@æØfRIDATx^…’UsÝ@ F×Ìt™™™™!ÌÌÌXføëÝ8ž¹™´Iσ^¾cIžx˂שÕþ# ÈË@Œ 2¬¬üÏîÁn‹™71­¡½PQT ®Ö»¬Ü4¢'£F9ëè ÎÑêHÄÞm<‰ï$}¾j `í.‹e©Qw \ݸ²Èóüâ’1°qaCMx1?›¼]þ qëÅ®f £zbžA®n-Óî°ŸdÆïj6;)?]Ô qް³¥=ÞɘnaÆhh .ò+Í>¢³àÀÒ–÷ÛÛ¥©©~nmô»ˆKâ²F°²*ìßaï=P(•¦8ŽëëÂîN*e=kRCDyìóôoëx,ësÜ—‰ÅÆÝÃYxlOÕ,y“¶x&3nK%kªc#óyÞp‡a–i«{\§Ëårårî§Nvušî7׬FvÝšÍWoßÀ¿8|‰F£÷^¯g5džGë4€É£ÕO¡SP(/'È= Ñj$W$I„óAQ¤ÍýF hˆ.4°ÂKŠ"@EPsŸ8Áv†‰DÌK°…ªÀ*IK‰jµ‚Pšg‡åS㌤*j¾ˆëëåcbôÞ½ïzåË /=Âoâ>Öî'Ÿ~ŸQïaOì„êñÓÜiªœ]Ôã z#ž J‡Ùó¬<ÊYÄA©'÷+4¡èwâÃön Ž„¹fQ;Z..\7l•œï Òý°ÕN Vw]ýX–Ÿ  KÚ4G:Á‹¤P¼Š½ ¿.©gÁAbqÙp¬ÁIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/26.png0000644000175000017500000000171212233761321026541 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿttu{|}…†‹”¬•š³œ¡¸¡¥»«±Ã¸¾Ñ¼Á̽ÃÒÀÆÓÄËÕÇÈÈÌÌÍÖÖÖÚÞåàäì÷÷÷ùùùûûûýýý¨®Á:;=¬¬­°¶Ê²²²²¹Ç³»Ì¸¹ºFGL¼¼½€‚LMNˆ‹™‹ŒÆËÛSSTÈÏáÉÍÜ““”ÌÎÖÌÒáÌÓÞÑÑÑÒÕÜÕÚæZ[_ÖÚâØÞéjjlÛÜÜÜàåÝâênnqâæéãääãçïåæèèëñêêêêììííííîðíðóððððñòñóôóôõõõõööö£¤¥øøø¤©¾úúø¥§«¥ªÁ}‚™ÂÂÂ’”𩬰$$$qtåéëæìòçêɗ˜™›››êíò²²´‡‹¦³µ¸íðõÑ×âžŸÓØáÔÛêôôóôõö···õö÷öõõÕÝçö÷øž §÷øøcfn---¼½ÌŽ“œŽ“¡þýû­±¶^`kÒØÞööõ¸ºÂáãëÓÜæ–›¥§©¯‡‰²·Ç¢¨²Ž‘¦abdµ,s†tRNS@æØføIDATx^Õ’S¤Dû³¶mÛöض¹öþõžtVéÝ÷¹¯ç$U©\ÍË»f8Üü–x=ŸòWÿA;¬EoË14 ôgòêˆ/Vk18]3…í•tµ²Â˜#:ÁÕWébž!µW~{ïþ{˜åŸ˜74†9—ߪ»¹0 ©?y~ƒÁá˜(v[éE«c1@~ÞU~´ìŽ˜vù]“$éº0Hêb_Ézå'¿|fä¦×l^fDÑ]Ë ß²:+䙦(úr¥Z‰;¹·]iÕm6¸O èâÌêì4žm4ŠìÕÛݽ#/y¼ôa¸{üÔ(ÛP'B*£æ^ b!q䥄RpŒ%öJ!òv)i™¬z -[=žÓv"¢¨1F,}-µ ­ÝÑ£×y2Ê }+W?41aFƒî»âP:+}h¶O¼n²b/B›£i“ ¬0~yÖï·êk¦/µá{ƒVw0æ·p¦_¿£ëƒÈÚIG*…Ì8ŒF} _ò?×ìfDyŸ&´HüQ÷q†¥în7&‚ÌññC¡;ø–X>®µðBø¨@ æÐ?OQÞöƒh,äJBWvеe“ Ó5[ù07?o1ÚXÖÆrF£Í¸¹iäÂ<_V{ u(«UQUYV¤FCÒ¼œû©YV¦X³IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/TWClogo_32px.png0000644000175000017500000000406012233761321030503 0ustar mathieumathieu‰PNG  IHDR+ ‹š÷IDATx½˜ PU׆WÚ&Æ6mmÚNëØiƶÛÆf:I&µ™´5Æ·¨‰ï&j4±$@1‹AÓ¤Q§Æ”*^ò@Âå­‚¼Ñ€ˆ(ŠAPA äþýgÝC=—›ÐÖ˸g>Ö^gï³ÏÖ^{ï{YuÀDî&ßöµŠ,°È÷ßÉÄÝ€Edy¬È_ÓGˆwZ:ñ'ÒÏ beæžÅ‘'.,·H—Íö…t k€Õú ô¸ñ¹ ò—”:Y)²ÎúSŠ '‰ÿ“X™»ï™-‡U¨ÛÎ"L :†9!%NÌ -ÁŒ`;nd&™jXSû}áýndÂ? ‘Pû©>ë™m²<^ÝI8ú¿‹}1FŒiCæGA^Ž…,w@¯±/äÙ`ÈÄÈä0È2/Ò^Ÿ™ ™ FŒýãô>gx}Ü„;¯Ï4ž­5IÎ,ŠúX™µòvø¦ŽøZ!«“‰í×z£5ŸÞ@eK'~¶ù0.Ñ·£u—ojûÌðrÈ+ñzŸÓXëxíωµ)b™"o¼ èÌB“Øùo戯½‘ñL¡ÈëÚwe\Ú‘rÔN +U»«¸ ßñÏÔ—ÓûœÇÒ¶¯z[ÄŽ Ì5ã‚X¢QZºòZ’½ïøÑÓû9úË#QÛk~²)â‘ðåb_;€á¾Žb¿mÆ5±z}e~ñ~ž½ï<‹ÚwsN«}꣣jÝ‚ŠU §’ÂÒ¾TìýC!V#èeÊ1â¥Vóð±-ùÚ—{²ÚQ›rÕ>QŽþ2nÛQÈŠxÞc¥ÀtmshÄê*^Ũ,ÙoŸÆ—âMâà 2ƒ pm2Ü£« SÂ5Oei ƾwHûŽ Ì_ÆiÈëÉec¡…3°OÇäst64êk’‡@ìvÁÓz Yõmø.É„cX[ƒ´“—qàD«öùcH)¸/ƒE|£§)'/¡¼ùâkZ(2Ùuíxü£B4¶ui¿G· ©ý&:oõâ+ëY÷h _—á¢Øßa¡¥Rë!eÍjcŽ·ÀZošQw™QA@Îõ§s‹J1N=ÔÊë)j'òÐë©'1ÂÏ>~'_LûL ǽL—Äê>»ú¸ÈQÖÜî›î#ßÍA/ö†QY-=‡™›²4ÏõÞ§þsyèï‡Ô~ÂˆŽ¶×9VÂJ›!s"0Ìe±Ì)úèëãn³qZíQc^ª]uœ‹,ý¥òBôN3îP`­Wûë­ùjÇo>Â=:ýåk>iúœáogº¼ÀôØ™ŒE–*Ú¼}•šBó÷V0§£1=´Tw“ÉÁÅXQ¥Çëï¸?à›ïŒz.ÂX c„]ËÎÍ_ý„ÚV,Šª‚gê)¬àñúÌŽ£)!è¸Õ«"¼1Vî2?g¯àÉí…°”_äý‰š›cþq5-°rwxš÷~ÏŸ¢[›ë'sɘN-“CËp¶£yJå356æÁ£j.2ª•x:¨Xëv•è ¬5v„£ªQÛz»Ž5«ÿËÀ\„W\„ë@ž5IC°ÏÎÞ«S–oùgAzû"3ŽÔ"øgÖk=;ÁÃyZ¿Î]#»¡ 3v—¢¿„—_€gr­ÖW&ÕÂÓßÐÞ¥šCaÅ®°‹ZùÕfäž»Šò ºP–FW£º¥SÛÚnbZX .w}¦~ÅÅ,ánÑ|½[ý8¾d_¨í² › ›Pz¾“[Üv¦Z"ÓÀÅC¹§çÕ·©Ÿuæ ¯tck~#ö1[:{ôzIó5µE´±Õ—°»´Yý%çÄ ÿÜýAÄ…ì vd`®ÂÎ_ îѦãv'ŦêJ—,ö߯Ë9ð ò2YBß=ÊÞçO´l×ë‰ö;+ãµ?§ÙÞ÷Õ-Öí}æF‚ÏÓ—\æ öÞ·Roã™"ÂOárí‘ ý‹´·=:¸~/-3xI­ÉßïØ¶ÜTw¶æ~:{÷§Þ†}®»&jã ¦Š~ˆñ÷¤ð;H?¹ß)ä>ßô+¸{EÃý$‹ô Õ`RŸêtüz4kÞR0£¥¾›ÿä I‘fÇ9ÊLw•ao¦ê”zk­x±¾–ÉýÆ x›úÜœEÏTûó|4šƒˆýÿ¸Ç°¿!FdÄŒõþ7øÃ {¿Øz2†ì&¥äRKV“>²Ø¸Þkøˆ¯Qr‹ÔþD2—ÀÀL3êQFÿ™¦ö¿‘q&™lÔ/’NR@Z…& ÇI»Qw3¬'Ùf<ċēõFÛÏI“hÒhøad I ÁäSÿYüßšê%ä}“¯ÖÜù92ÖÔèG2H"yØ›E> i¦ûF’ ÃÞhΈ†…f×ÏûkÚ§­­·Ï²7¼9˜K,ãM¿¡/ùÜ}׈ßÍl5Ë4Û«\uõé"´®›¯›3ÂqìòXÙB5ëKë2Íï›7‚uu¯×¦Uí’ýCû ™M|Û‘‡ƒIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/30.png0000644000175000017500000000211112233761321026526 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿ~vN‘•® …+®³ÇÅÊÙËÏÚÖÚâÝàåàäéæçééêìíííïðïð¬ùùùûÆûëyý¥ÿõÿýäÿÿû²*³~³¸Ëµ¦‚¹¬S»¿Ï¾½¹¿ÄÓsf/ȹYtYÍÓàΆÏÈ·Ñ®6ÒÕÞÓØáÕ¿CM<Øž,ÚÚÛ~|yÞ°…eá’ˆr,èÀèéééç×ŠŠ‡ëììì· \K”‡cš—Œñ›óòò¢¹úØ=bU$  ŸüÓ-¤©¾ý·ýýýþ¬©­ÂÿûÒ¬Hÿþólj^¿¶n˜ƒFÓêÁ=êÙoÁ¤,ÁÁ¹íÔNíêÃÕÕÔ«™c× ×ÊgòÆ)ÆÂ¡ôÓAõî¸õðËöÞYöì¥ùºÙÑŠ˜˜˜Ý—Ëš špàÝ¿ÍÍÌýûé°°¯äÜ’äåæÿõ¸Ž] è£è²/¿™ùÊìå«çÉ.çÏLçã»»±¡ßÚ®ßÛ³èÒV‡‡–ÓÐÆÊ›ÿõ¬ZW>õóâÐίåӲƸ“¦I*ûtRNS@æØfwIDATx^}SãdA|¶±´mÛˆmÛgó_¿}¹Ün.¿dëÛLuW÷ôTOÀ–€‰P,“¾M¼È©šºè óÐb[Ï©oœ÷•Jd°¤(k¼F´þ…©) g‹à¾ü*[]“ESAžO‰Qò–=êwëwñÍ,—›¯¶©nw*|9–ßI€F±~päª~5çƒS`Œþº ÃŽkW1¦7¾m³YÁVûïWÍ›ÀuQŠézî ´Ä¹cpI±©å”\‰ê¥öM/„3 “!:a›_Vxþ!àµ^k¼ÎÍ0¤Ók¥pÊ›ì…Q[‰U‡ÔnêB†ÆÍÎ:!úl³ŒþE‘gï P4MúP¬D" ܉XFÝžóÄ\zØMâ>'j°: eŒa("\ÓjüØ·{"\ÔµâþB¢¨-Csc† ’´á€¶×ü‰l3z¼Œa82To@dÖ‡^–$½¬U(½[ÓñžÁ €`ôPÞim@¸Ï€ ¼›=¿“X†Ä¬2Yb2g‚ʆr„4þl.qÿ"¼æy©$C;ÔŒ™Ã´6¨ ûŠÉsìõzùüôôÊtϘÏ y0\«Ý· –XE^?ŽI׿8®ÉI’ëöR#C´ÄæªcF’Ú$éãrö® ŒÑ"qx68+‹±™àmV¸¤Û¡2nˆõˆ#x«ƒƒ{_ã;‹œæÇnØ5¥)Ír¶Í½f®g«Ýí·ùóq@j0m]¨šä ¸ ­“söÛ‹Â÷ŸJwã>™²jr˜qõf0ô2K/¡û)Ì“Ðÿ -Õ$ðÔâü4múÇZå‘IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/39.png0000644000175000017500000000173112233761321026546 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿ#%(/4MYfTVVWakbmxjpulÈÖv‹‹“›“›¢•ž§Ÿ§¯£«²©­²µ»Â¸¾Å¼ÁþÄÉÃÄÅÅÈËËÏÑÞÞÞãääýýýmy…pv{p|‡s|ƒs½Êyyyy|~z…ƒ‰“ƒŽš…¹Ã.8?Œ—¡’˜ 8BIX|„–¡©›£«\gs\ƒ‹>lw¬³¹­±´¯·¿±¶»µ¹½d§³grhhhhÕãiÐÝÃÆÉCOZku‚ÌÍÎÑÑÑÕØÛÙÙÚkÂÏlszêëëðððóôô÷÷÷JSYrÁΊ«³²³³‹‹‹_¡® ºº»b‰’b³¿“µ¼0LW–––ÉÉÉÉËÌeºÇ™ ¦ÍÔÖÎÎÏÎâç}“˜ÒÔÖÔÕÕÕÖ×ÉÒGJJÛÛÛÛå矼Ã*DJ¤¦§¤ÆÍ³½€·Âûûû:GT}ºÆ~ÆÑp˜ fprÑÓ×´ÏÕfsƒ¾ÈOƒtƒ‡»ÕÛuuuZ‘›ŸÁÉ]¶Äm†‹ÃÎ[—©¸¼`“žÚÙ§tRNS@æØfIDATx^ÕRUoœAËÇÌ|ÌÌÌLaff*3÷¯÷’»K¥´yoçav%[ã±w§þ½¢ÌØÎÓ¨&ctY bòøº5(ª*swþ†¢LŠ‹$3œ"Z*ný<‹2lRŒFÙ¬ÌoA· ù1eåD-³M‰@]^ÄÏ=h3‚ÈGiZ’H$Ÿ–øÖÿö© «À&¹€7Ÿ÷ZTih’ÀbÖvoL0© G%%ÁƒT§¦iû<ËgX2ÂkD„²¥Á» ²¡j‡ªš$ÈF3‚†F~1–`5‰IÓoL©ýæ«tÄk¸x …üë÷'É ÚcAѲ®ì—) R©˜ˆâ ÕGüæå­"Ð-‘‰’[É*T¹…bU¨=Fc_ ØWì О-¬‚àê¹=qn/tG.Ž–Á—q0¼ ,•àŸ@¨èÞHñnàa÷iGŸþþñó ‡Þ«ù6á‹zÝׂk“ Vœ"nÞžF¸S½ÓÚÛ±ÅÝ­½uÛ’s’Óîv÷hnvê—›k¯K°Ø“ÏJðbOnN=(,âá¹ë½æô'§m¾p6s`ËVfê]üX¹rJ¥Áâ`öÚ:‹Ç×®Þ§ðøÜ͘ð|ëýo¹ÂeΡÝ%X6ºC©ÅÉß×áÕ°…/nzw¶ßæÃãYÎñðïŒûQ}}¼ó͉~×µaÿoê1„Y?*YÃBIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/7.png0000644000175000017500000000175712233761321026471 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿ*:E+07=CJFMUMU[Yfrfmusttsz€}€ƒ†ˆŠˆ’š‹Ž˜¢““““¦›¢ªŸ  £«³¨©©¬³¹´ºÁµµµÂÂÂÈÉÉÍÍÎÜÝÞêêêúúúßâãååä½ÂÇ›››WakY[\ ¦«¢££u}„x„¦¯·z{|ª¯³3p“­­®°µº‚ˆ‹ƒ„„¼¾À9Sa;JVks{kw‚ÑÓÕÖÖÖk‘¨deg¥¥¥pu{òòòõõõ———þþþ.Ñò†žíîîBDGJitŽ™¯±³L’­°Ûï#F`PZe·º¾¹ººV„›&es¿èù'’ÄÊÍ©ËËÌÌ g¦ÑÑÒ”œ¡•Ïø,™çÝöý/µÑuÀõŸÅàìõúDn|É×Jjg›µÇÔšáôd‡’—³g‘h±äR”¡æùÇËÐD~¨ÉËÍ*¤ûmÂÙn†§ª­§¹¾‰ÌûoÍæ«ºÅ$’ß‘ÓåpÉá¯ÁÇðøþqØò,Xx[£µC¥ëÒÖ×ÑÖØÖm5tRNS@æØfIDATx^ÍEo› Eý13³™™™ÂÌÌef†÷þz›ÔŽS©ÙV½›Yœ£ÑÌõýs1 Œqn¥-3Ü\ÜLf ç^¢“†‘^ôÇ Ê®T»¶iÿÆÛ«$ÃÑ×ߨú}cö~ã&wƒ‚”Ì+Xo夷r°¶Ò+¬é7†~â¯VŸ‘_¦–ß‚…òñÛ dpƒJ‚êWã5"E .@˜>!¡fHÈã²W/¨ÀR»£†ìíD+C¶+…Ĥ¦7_·§ªc^¢ÿMn¾ÈŒ„þ÷Øç†úùOHÏÔ¡[Ÿ*úP¾o`ƒ+ ä0t‡ÔñPÊ»¿ñ–áÀË9–gG剦J +Ím>NûÕ“6àd"BÀ[E¯¯C2.Õ#Õqî}(gÛ&Rò‹‚쌌‚wÔ²fƒqèãŒeø–À½Ý"&ôÝr_ÛõÙ ÷ÌT6®³,Í5+ÕÐ&P_©Ý™«˜~çaøðë€fé¯"ãu8¶ê.ά/»ºp¦`ExŒ² Þk;&]ÍØô˜|B;z<ÎzóÞÌ=a"À„3!E•WÖ‰wN3Q¡.¨¨Q‰þˆ&.¤heÉívƒß,0ÙxS(Ó‡——'éô|d³Ùä²Óé|Ú˜Øà8õV’¤5iÞçðõõ­(.§²{ÇÖ†Ù‡Ò^RL%ÅðÒ}û·ké“ù*1ü²4¶þ5JΛ›…÷QE†±ðÇ>Í&£AOo?W·ªÖnkÚúú/õèt4ƒzì/8sO›>,IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/1.png0000644000175000017500000000170012233761321026447 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿýýýDFHJNRKRYMYc_`adddhhhppquuv|||‚ˆˆˆ“™Ÿ”••ššš©ªª­­­ºººÑÒÒààáõõõúúû.59ÌÍÐT³»v¬¹xxxx|{‚‰WYZ\ÄÏ„…‡"‹Œ‹‹’˜‘’’_iv7‚B †ca·ñÕ>7 tmf ¤¬EQtVÝŠ¼çbQd–BCQä%‡VdïÃ>ŒžøÂð©…N xöÄ0רSìÖÒccO[Þë®Û¼ÍƒOÙÁË´rüÙ¦óýÚ>|nßÕVk+-p§ž½“ÀˆgœspGŽ.Ýz?-÷~Ö;v›˜oø¶MuÆ‹ýGÉqmEý˜ù1|»Qºåýñ¾¸|°«mÔRƒu¡?µñZÄób¡ ctA]-ò¥É@?³¿j.›ñ«c5ƒ¨à½áUó|ÑoðúÞëΫFðí7Ð O(ã EIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/12.png0000644000175000017500000000172612233761321026541 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿ#%(/4LXeTVVW`kbmxiÐÝjpulÈÖnz„xŠ‚˜‹“›“¥– ©£«±¬³¹¯¶¼µ»Â¸¾Å¾ÄÉÃÄÅÅÈËÞÞÝýýýpv{p|‡r½Êu}†w|~ {{{{†‘.8?…¹ÃX|„—¡\gs–™›\ƒ‹™ ¦œ¤¬ž§¯8BI¤¦§¦®´d§³eºÇµ¸½hhh>mw½ÁÃCOZÂÆÉku‚kÁÏÉÉÉËÍÎÎÏÏÑÑÑÒÔ×ÔÕÕÕØÛÙÙÚlrzãããëííðððóôô÷÷÷ûûûJSYŠ«³ºº»hÖã/LV’µ¼tÁÍuuub‰’ÉËÌb²¿ËÏÒÍÔÖ›ÊÓ*CJ:GTŸ¼Ãfsƒ}“˜ÛÛÛÛå瀷Âàá⫬®ææåéêê´¾ïïï­±´gr²³³_¡®ˆˆˆ}²¼Ðàä~½È~ÅÑ´ÏÕÕÖ×fpr`“ž[Ž—Oƒ»ÕÛm†ŸÁÊ¢ÈÐGJJ]¶Ä¤ÆÍ‹ÃΩ¸¼Z›Ìãép˜¡ð^¨NtRNS@æØfIDATx^Õ‘c“A…÷µíkÛ¶¹¶ímüõÜ\$U›ì÷¤?tÍÔsªÏ陹¯f¼ò0=QñP^ àê\#}ÙJ½^Žø©ó¿ñçhä*Î b\ËÚrTûžBy^ȆÃ|J•BÐ.h¾/@yM;¬äùõ¦B¡.qŸÞ3h…eY ³œ¢0ȵ¨H ÞÿMû˜Mæ…¸Þ¿¦-ª5tEæq[«7˜}¬g…¼ìB ]Öõš—DžD&¼Lq¬œòi É1M½QÞlL£É¡Ñɾ8Oñz>"rûäÕz­Y9šº$ЏKcáåK[PT;ÓëyÖ‚är$åG\Ñêd÷(]@ ]J 3!¡åv!j ÉÇÌGȦ%‡)š2QÇ.í˜2;¦ôå$åöø"z“Àæ€_ÑE7ðôc9äd Âë<:?[yµúîûj»Wö$áXµê)Â¥ÙC-Û³„yËŠœuŠkð®xP²®9gïôxër{nv*ï“gœí©{¼ÐS›s¿ïÝñAså«så6½7_·&ÒËóÕ™Á7âƒvaW°á—ÅáÍ1yC¨+"x7˜ žÞâ]£ÿ9‘þ”pžÝ7¬º#«…ÙÏÛÑѰzcƒ^wt}’p^Ž{g&0Æ£úíiæÁaûg×Gý¿©Ë0Xq±!@IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/6.png0000644000175000017500000000171112233761321026456 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ}PLTEÿÿÿ5:A=CFMXc`aadmwnsyr{…ƒŽ™•Ÿ¨¤«²®´ºµ¼Â¹¿Ä¿ÃÇÂÆÉÒÔÖÞÞÞãããçççìììúúú‹“š)/7çý9HTuŒwxzxãìz„Ž}ˆ“‚„…††ŠŠŠku‚—¡’“”“œ¤“åìÉÙ™ ¦š£«ž¦¯¡ª±CO\§®´ªªª«±¸Dà¿´·ºEej¶¸¼GIK¼¼¼lyƒS^jÃÄÄÅÉÌÆÍÐÉÉÉÊÌÍÍÍÍÍÐÒÐÒÒVWWÕÕÕÖØÙØÙÚÛÛÛVaoááá]ivååå.–êêêððñõõõgr€üÿÿÖèêkkk9ot2â󗙜ýù§Ümß‘Ëf_ßìϼø;G.nDÇYñøàˆÿ°Üÿxr¾½ÚšÞâñæóɈ xg7ï¯î7ú‘‚ͨ‘°:ÿ¾¼‚+Ú‹¶íÊ>úú°bû›&O†¶¡ßefN梣ÁIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/18.png0000644000175000017500000000171512233761321026545 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿ49?oxÄVjÕB1‹ó«H ¦%œçôWçŽG´ÂF£t‚KP1i¾ tžoUxºÔâ0ÄdUß­h”e™(Ir¡bãD~{gä‹XZ ;­ƒU?Cò cè=:\¨Ó»#–;݉ÿì]·sp­-J?˘ì¶Çb«sîXwÅÉÛ¶]ìì¿ÞÔü’\lnlØ¥^îâG¹Ç¯\uëòŸ…±¡ó•ÇxžìõײæŽú7'{7É%AÖüOúZ¿UØS(˜IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/46.png0000644000175000017500000000123012233761321026536 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ`PLTEÿÿÿ››¦««°¬¦•“´µ¿‰†ƒ»½ÌÄÄÃÅÇÕÎÐÖÏ˰ØÙãïðòö÷÷ÿÿýàâçÀ» €weëìïÙ×½òóõÖÖÖùúúüõÎþùÞÿýñæçèâáÅíç½kdZáÚ³CyHYtRNS@æØfæIDATx^m‘®¤@ qèÉqfîË5섟  —ìguóR¶‹Rš¿êº®Ëz"Î_åe¹],Ë©üÖåv<9•F‘ºT†“ë}ûa”õv<…Î'<^Ƨ¿ÔBKC„VŒ°­Ò6ß’b rahoŸe» T,óX]F¤Å'Á@9͵ï}ÀN¤Åk°æÜ;£T¿ƒÖšCÛÒcy 7šçÜG§\ÎÀ€Úåb{¨1îÑ;SSDˆ5: –è%¤rt“q Cp)ý®‰é™ròS­Æxâ¸<çêÓ˜m÷¿Ã¬ª™<º1cŸæq=•hôãl¯TJ>îLǼ{£4T¯°®-ìýS`d•ÚJ_®4nN29y~ßyΙߓIhÖéã{§Ís&Õµµ7YÍæØ¹£sHl^Þ)i¿4ÔÈ E ®¶¿ò7„Èû΄¼Ï|©Ó®ͱ¡†À{†ô»î‚龿4öŸêò3æÜõºÈ¡M½š@èo9‘M[”Ö£jÐ}·sˆU<ë¦X`V·È…b%yT$ðˆ©v ½þ«@¬ækí@lW¨ªÏǾRU7`OMzŰŒ¬O­»#¯KY‡¦GnzÙŽªU·]øYÒÓÆØòŽI[QQSÑw,­ÏÉŠJæ]ѶdÙ yW’r^t  6 i]hΪ—\rQ{þMaý_ b¡ºª¬wÝ3ï†Yb‘¢Ï Õ@$T–Q0ç."‡†|á ý|äqkJr~²fI§k" êŠÖíÛpË5ËuxÊ'^0eÚ˜šš]+¶{ Ë”ÖOP”¶$íIºÄ"¡IIOxUJA,ö¡+rzÜ÷wpà;e¡_­ùƆP$T³¥ß¦)GœpÑï4¦ F¥Ð3ftzFðõ)š:@g–âR1t’…ÌJ³Ìhù‡Ê©¶u„l‰3ðkPWt¯ ‘ºBAW$Ñj@üìû¾Ë.ôÅ.IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/40.png0000644000175000017500000000171312233761321026536 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿAKWYbk[hsnÙæt‹†š‰“˜¡‘›¤–ž§œ¤¬«³º³¸½´ºÁ¼ÁÇÆÉÍßÞÞêêëõööúúút|„pwmty9<>;djsss=HS(29t¬¶z†“|‚‡ˆDEEEuyI‰“KWe’ÂÌMT_›œQ]k ©°¥¥¥¥¨«¦®¶§¬²¨®±¨±¹««¬«°´TUU°´º³³´V´¼7BK···¼¾Â7TXÁÃÆÁÄË_kxÈÌÑÊÌÍÍÑÓÑÓÕÔÕÕÕ××רØÛÜÜÝÜÜåæèdp}ñññýýþht€fÎÙ•––dgiââã—ÑÜaÁÌoos£¥}}}¢«´ÇÓ#(*¥±µ‚ƒƒÑÕÚ…±Â†Ž•*,.ÙÙÙÚÛߨºÇ¨ÊÕÞãä1\b”I¥êîñ_ÇÒtºÇÑÑÑuwz&2H`aTvz˜–§˜¤¶ƒ¨­®ÖÞ"†‰‰X‡‹¡¬³¶ÑÔX‘˜£¦µtÎÚ,CMm—¥BƒŒÇÚâ.7B~}‚Ð} tRNS@æØfùIDATx^ÕRU” üÜÝÖÝÝÝ]ÏÝÝqwþ:°,»äàÞ¡/m2“ÉtZàÿ«šMw.?ˆök!­&ìjÿ\âB£Qçqoüo*²JÄf«Ø”þCe¢#Ñ|ŠŒD‹yÖfïB÷çX…o5ª©T«I{¸Õý¥xÏÅñ\˜¢Â•˜ê¶ó<ƒÝ*3TYMhóš#´‡be?¶ÓÙ¥Sµ©YNFRÄ:_¤zA¡¡¶Ø©11Ž &x]¥I–'¹¶@Âp©ÖëBV©vƒ,›&ËèÖ­TGˆ1a´Lòµf»´EXË^‚ÃËþìÁ‚ °‡ôÚƒèEQlÖ¬çÝ( CvPœDép × ?Ñj!!7hòÃC¯æMv&&>WaÓtúbt™õ~ƒYŸý`6{?É_—;F6>ØqkÉè¿Z.k¶‚cåcf%ž“¦A,½MV<>I@ A™ÓO®ñäÊÙš589K{–äËgÐͱE\Üͤҫ—ó$—,Á.rº-=_½É#΃ÔÈノŠ3ü)ø>_ë…#êï^9Ä£ Ô}:Úæ£ýÜ >în¸7œgÀÉvºt}üð8)вó>ä×n¥/¿[~Ôž¤qzÒƒFû“±k+sÂ`:KÒü=ZðÕ79ÉU@òOIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/37.png0000644000175000017500000000161012233761321026540 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ}PLTEÿÿÿUZd.17>BHEJTMS_[alaiueffšš› ¦«¥«²¬°µ¼¾ÀÑÖÛÓÙÞØÝáÝãçQUZmt€‘öööùùùv}…yŠ|||}…Œ‚†ƒ‹”‡–‹‘šCCE˜Ÿ“”•–¢˜ž¦™ ¦%'*œž¢œ£ªJKLMQV¨®·46;¯µ¹±·¼²²²¹² ¹¹¹ºÀÅ69?¿ÅÌÀÃÅÃÆÊÅÊÌÉÐÕÌÒÖÍÓØÏÔ×91õÓ½ý|îíñs3oý6›íŒ?ìöÍ‚W³ï/·–` ÌxóõÁüó­ ø~ÜGÇ¿÷äIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/27.png0000644000175000017500000000205512233761321026543 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿìí휡¸¡¥¼¼ÂÒÂÈÙÇÌ×ÒÇ«Õ̱ÚÝãÛßæÝâéàÛÀãÝÁåèìèèéëì쇈‹ÿýõÿÿþ‘’“µºÍ‰‹—½¸©ÀÆÕŽ‘«ÃÉÔÆ¶•ÇÎÚ“–¥È¿¦ÈÈÈÉÐÝÌÌÎͦÏÒÙÑÕÛ•š°Ó×àddg×ϵ×ÛáØÑ¹ £®ÛÛÛ‡Œ¦¤ª¾ßØ¿¥¥¢ª®ÅãåêäåæåàĬ²ÃçâÇ®´Èèêëèíﯶɲ²±íä¿íñóïïîðñðòóòòôôôêÉ÷øøúóÚ²µ»ÿþú´¹ÇÐ×áÁ¶›ÂÅÍÛÕ¼lov€}ÜÖ½ÝÒ¸ÝÖ»ÅÅű™v²¢ƒŽ™––—äãݳ¹½¦ŠÊÆ·ËÒ㵫˜ÌÒÚ§ª¯éݺëäÃÍÒÝ· ~ýýýÑÑÏîì⹽˻¼½ñï盡LMPÕÝêõóêõõõÀ­‹×Ó¹ûúúýúð××Öÿüò®©ÚÕºÚж€€‚æÛ¶Ÿ–uáÑ«~|vª¯º¬®³£Šeos~Xj HtRNS@æØf[IDATx^­ÓC{dAàԵݶmÛ mÛÆ}zžî`f’]Îö{ë`Q#]r¿ÞÛmIº•$©-¿KÍzqkk«XoÞ¾Ad©Yd“ 3I¦“›MIþ/¯³éôååØd„M³~ñVþ'/&Y†¹¿gûCdŠÀñO ©ÞïÎôGxçÖð ;AàæÍ×SÚM6ùÍböîç>å÷êí×ü~fleeÅÂõú/³ï%ÞïågÐLNû½š h4¸”+XÆ ¯Ý°óÒ¢]g§ MŽ®ÕJÆŽä6z8a7Ï~}R‘%ð•ãôHæ VË--÷4fû¬AzI戎ú´1U‡ªu4è: sO—ÊA<˜?cÈX*Ìëà0ŒÒ§Úèò 0¬Ýր釄àÆx©æJV´µÿtÆõÌ)mÍ›lN^(aÛ¥òÕœ6“Ú{ÁR©QnµúÏ»n « !“xì(¥Â­Ý8w^]ÑßGh4ƒ$DéÔÇ¢Å*PqpÖ°:‘Ír§«H¢ì†ó”1¦V£%çÞT~œ¸.i]ETÛÆì+ƒ¸Ã#ŠãC0b™8<ä×õncÞ!±YÅ%øŽ‡€+‹s#;P$ø ëz¾JgÄa‡ÊŒ/ì(’CÃd€¸ Ê­Šy,Ã+l¼‘oc*H_- €Ca—ÎC0ê± Ànð†¤|h dã< U®N…v°ÑþCÁÏDET?N,,|‹FEÅ4ÿ(*Š2Xahçe!qtv´¶¸Èߨ‚ç»ïþ¶¯m۶ƶÛüëIæfªn&s^Sé×îUµêÿ|$e]kŒmT¡ÈÚDzÒö:)ý0·qy?RêZ+k˜‹Ö73¯-¬ñ®¯²p0øt<ïHHÙŒKu•˜;A¤âþÊÂù©ør2¼þ±Äÿá¡Â Ùý/ghNpA(†ÖR£þ­í+A¦µûö•w¹×ó.L¾}t¡l£ÈïOh‘ÛMîÜî%ýž²4hÏ´ç‚·„ÞøØÎõƒ³ôöÕ¥á}Øs¹'uD1û¤Í曀*ã!IØå’8¾S†›sØ‘öv?X§œãÞ%/›Õ«Ó„õ¨YÍdp\í]ø–¦ÛãéGÑå®êúRÿƒB³v­‡šž„í ¦E°+¥Ö|Î@Å·…V¾çVWŸl¹Ê"¸Ån·‘F:~0:x an”aÛ³kÓ)+ƧRãi.cV¸HÕF3ÅC—b5€þ›_‡7‰XÛÚL€æù%ËJ!èàóy“›¯ g‚1¨Š MA‚D‰'N0´þ&†Z($NÑ?…ÆÊ÷Xœp#D: ÎB»A25 Ç%•¶µaºT ,@> ÁƒÎYÊKNÙKËIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/35.png0000644000175000017500000000167412233761321026550 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿW\e;?E?HNACHIPZSV[.27dkxehhkr|pw‚zˆƒŠ“«°´­´º²¸»´ºÀ¼½½ÄÉÍÌÐÕÑÖÚÕÙÝØÝáÝãçãã䃚©‡•79?‘—•šœ•œ¢œ©¯£©Ÿ ¢£­°¤¦©ª¬¬%'-hnvS€„k¼Ãµµ´º¾ÃHKP¾ÆÊÂÆÉÄÄÅsuvÅÎÒzz‚ÍÎÌÍÔØ^enÕÕÔ}…€†ÜÝÞcisâæéŒ“›éééìììíìîðððôôó÷÷÷ùïúúûýôýýý‹ˆŒpouc ¨WW2ËÆ t©±STe•™ŸYdk¢·¹€|+i®´¥ª®©¬µ‚‚„ëã+.3k²º®«¹…‘“Nfgˆ‘˜º·Ã‰‰†‰˜N]K#¥¡°pmX|ZÑÊ$‘’”ÔÓÏV«¹»’„’’£°®¹áÙ±µ¹ &éèìsqaœ˜£¸²\[FîîðHqu†‡½·%u”–wžtŸ¦-@?,ÔCtRNS@æØfêIDATx^½’Å®1DÇÍÌ8ÈÌÌ ™ÂÌL¿ž·œîV²KjaYªãº*Û®ÿ¬ÏJ¦ g¤|A®´¦s‡]ç”RUÓ5Í0ôjŽã¤žÕï…rUÕ0ŒŽ®kŠªòþeidº¢¨ºÞéhªX$I ”…þ¢?þš×5µZÒTYöc+Ç7átÝ’ðÄÇet­*«Z†;,šã±½ù† «š(ºÌ—É¡£Â;Äœ<â9‘«‘=0„˜Éb¨Ûô dßø!_„ó„žÒ 8FŒq˜õu=,Ûè6)ó:FDQÆãk0D3Ð%zÃv |uE°”§ë;ŠÒ(¨í"#jŠÒ‘@óö¶IŠm„»mgŠa™6Ý&à¨Å—âh €[ÃÚ 6Ñf ì•;d/„¢@`˜ ¨¬ž/^#þö~üÅïC§8 #ÙØB„Y^ý’]Y½<¦íl&“dùìry«°1=ß¾0¡õêçÉäWòbØŠÔmŸ1WžìÍŸÍ>Nú×A«?}™Ú3Ý©túõúÚd‰|çNŬ€â>(\olKû³µ'›7w[Û[<8û>[K“õO~Ü«›‘¼Ëª|w"¶?Û+­ç-×”~üí}Åõ7žö]ÿB¿»!MèhœfœIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/9.png0000644000175000017500000000157212233761321026466 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿœœœžžž£££¤¤¤©©©«««¬¬¬­­­®®¯°°°µµµ···¸¸¸»»»½½½ÁÁÁÆÆÆÍÍÍÎÎÎÑÑÑÙÙÙÜÜÜàààæææêêêööö´´´ÔÔÔîîî±±±úúúÀÀÀšššÄÄħ§§ÊÊʨ¨¨‰‰‰²²²³³³ÕÕÕØØØªªªÚÚÚÛÛÛ’’’ââ⺺ºèèèéé颢¢ëëë¼¼¼ðððñññ–––ùùù¾¾¾ûûûýýý´ºÂÂÂÂ,AC0DF˜˜˜ÔÕÕéFËoE òB k’QÍò²FJÕjMZöQˆ4Iä AÊ!~…&q“µ7¥L‡!ï#34PG°è±›s^@̤ŸÒl@8—Ãmo0>Rÿ¾Çwf}Ù $ V@ÐýA¬“fOÛ˜—[kŸˆt”ðÕÕMa4¶{“–] ûWñh8.·Í,¿‹ù§ìFK¿â?wÕôñ”'8O0ö ·}:œÿf ù뜟,gq xض™XÐþ|vq‹ÏÏ }Âw%6兩™¥õÅW|ïW™sMånŠZ‹'ZÃN¦ÌñÇRGNë\{6#¼~1þ™g)°5è8 !ÈLïè·ª6Æž!¤…ÀøçzÀ5¾-WíêzÍp< ù k$PÎ\ÈIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/33.png0000644000175000017500000000177112233761321026544 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿ¨…^ª’kÕÈ©Öͱ×Ê­ÚѶÝ×¾ßÛÀàÖºåÝÁÿöÕÿøÜÿùãÿûìÿüîÿüñÿþùÿÿýÝѵþóËŬŒÏ¸™ÐÇ­ÑÆ©ÒÀ¢ÒÄ¥ÕĨ VÕз¢ƒ\—wP×ϵØÒ¹ÙέÚα™|WÜϵÜÓ¹ÝαáÛÀ±Ži²yµ•sáÚ¾º¨„áÜÁãßÄäÚ½äàÄåܾ»|êãÂìâºö黸ë½úîÂüñÆÿýôÿöÑ»¡ÿ÷ؾ¨‡ÍÂ¥ÿûêűŒÇ¾¤Ê³”ʺ›ÙƘȹ™ÞÙ¿ßÔ¶ÛÔºÕ˰î⵿²’˼žãÑ¤ãØ¼Ã£‚×ÒºÍūλžØË±çâÈèܿijšìݯÙ϶ÚË®ðà²ñ帯”p¹švÚÕ¼Ûͤ°•pŸ…^«ŠfÓ¦Լ•ϽžÆ®‘ƺžßչɳ˜àÔ±´¤„Ê·•ŠrOàÖ³æÛ¸çÞ¹ÙÆ¦ÖË´èÞÂéæËϽ˜ëاÙÒ½ÓʲɨˆÆ´“À¦‹¢‰_ʬ†¼¤‚ôjù°tRNS@æØf'IDATx^­“Ss%Q…§iãÒ¶m#¶mÍ¿>]™¤»rsç-ëu}u6ÎÚ¯^Z¢ªÿ›B…gUqa"$ð MUUQ4Ã=GÄ CÉÅ™|.—ß-ÊÃ"OW ï’8>ÄkkowešÇür>¹†Û0,M–nJO‰Šê§8Ž ‰Ëoh6=eº¢SIÆp<&·Æ†2í2.ÊŒ ¨† ¥sèlŽƒm—Û¾±IiEFÎÛ§BS!’D½1Š·a·ñò®¬=!ÐECÑ@Š® ¶ "›õÊÀS… _¡1¤6ðö‚Lj›‘>Å=´ÀQyrÚE’RãWš;G,PÓÔ\¾mWYñÀV‰©Ld8BRÏŠxz½fs6^mi€¥‰ DÆÓØûC˜k)K{În¿ÔŽú|½‚¤FÁhaÍw½il©óC-ñØäü†ÒyG¹õ÷û6 œ­bIwçâ´1w.j]"xnV”}ºÝëÐ'WgFS`ÊgÙhð8ÂÑ“°²m^ …ÜÆ’¶(‘§¾€ÇÑ‘ÍiËž[SÁSIÚÂîW­ïºíÇç‰Ùü¾ù_ßÜoZÿîø8v:ÑîŠb ü¼EšŸ¦úNl¾½;CêãzfËS¨³ã‘’ûÇџ׫ÿª5¸Y¦u_miþìw÷ÂÐß)=­*{Œ}aqòápl«ÕÒg¤ÝÞËé/ó†`ÈõØŽIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/16.png0000644000175000017500000000175412233761321026546 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿÆÆÆ‘‘’ŸŸ £©¼©©©®®®±±²¼¼¼¾ÄÒ†††ÉÉÉÍÍÍÒÒÒÚÚÚâââêíñìííõõõöööùùùÝÝÝ¢·¿¿¿µµµyyyÁÁÁ¡¥º†‹£ÉÍÛ~~~ÐÐÐÒÖÞÓÙâÕÕÕØØØÙÙÙ¦¦¦™œµßãëáåë•¬æææèèèÚÞä±¶Æïòôòòóòôöôõöœœœº¾Íø÷÷øøø™™™üüüýýýÿÿÿ¯´È••••–˜ŒŒŒæêï‰‰Šµ»ÍôôõÚàèÛàçÜâ쫲¾ÝâéÃÉÕÅÆÊ«²Â­­²ˆˆŽÎÓÞçëð©èê푘ƒƒ…ïðïïñóÎÓàÎÑÙÐ×ãËÒßÑÓÔ¶¾Ëõööõøú·¾Î¡¡¡º¿Ñ‹‹ÁÆÓáæîþþü‹¦pppwwy¿ÅØ›¬ÖÙÝ„† ØÙÜUUU¡±¹ÉÆÎØôöø´·ÊkkkÉÎ×ööõµºÉ‡ˆœƒž€…ŸúúúºººŠŠ«¯Ã–šª˜™žÀÆØÄUktRNS@æØfIDAT½ÁÕvÀ»šu»»l\êBÝÝw§è¯Óô(Až8Ìàˉw‰?1ÕÝõWÚC[õ¿eÍòf£RÞ¼7([ø•%kV9šŽÎhÁåO!Å@ŸüýÊ~åÖñÀÇ­ÒöÅÛìo ?µRålçn±ÐÖÆR‡©ÇÞnZ—§ Û;_'Ó|о5’á?“°£§!‰‰ÒâÓ™Ã'NçØ@Ê¿bÚ—Î2óÕ4qmv)£½œâ Q:àÜ<®éö†5Ý?»“D—ºµWŒF¦ Ós×%û¾¦EèÚA%è? ¡‹HÓ§õ‘‰ MGVÆò?çÌEjþÔ‚]D¹0ù,X+ú³…ó†Q×NýÙ‹ešÎ:ktîÝÅÅÓçÎì»âH:_ÉðÎÀƒÏïmÍ?ŠãšE &rm”¬Q¶!êduuAh’ï½ô´â9I0ôºÎÉÃ,aó*1I dž“øŽ û|rÉÇ$BLµž£C­ZøÆr¨@@Z«ºÑMf,œ¬R>ô!&Ä(…cl·EtòÃ$ã&âèÑu‘d›¸â 5 ©HŒañC‡rÃDWÞDKow€X 7´Ú°$Y\ÇÕ–ËQãèw&Ðis"ãi£_žr¹X…KTÜÑB…t«®Q°Šª—òäѧ-3î#Û%“%“Ž„ýÔA¶©è/tŽÄ_ÄE¸Xü;_üQáPÚ^åIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/11.png0000644000175000017500000000166612233761321026543 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿ4;C³ºÀnu|r{ƒs‹„Œ“†šŒ–ž§©ªKWc½ÃÈÖרðððôôôíîî>IVDMX)/7x‡’xÀËy„y²¾}‚‡𣂬¶LU]R\iˆ²¼‰’›UWZ™¢’š£’œ¥”ž¨–¦˜¡©›£«ž¦®¡©±¦®¶Vbr§¬²§±¸ª²¹­­®®´¹²³³³¹½Wcn»À޾¿½¿ÁZftÂÆÌÃÊÍÈÉÉÈÌÐÍÎÎÍÑÔÐÒÕÓÖÙÔÔÔ^jwÞÞÝàààäääèèèep}ht€mrv÷÷÷ùùùûûûýýýÚÜÞÕÕÕ|¹Ä†¥­™™™©®±ÝÜÛ›¥«°µ«´»æææçç臋ëëë­¾ÄîñóÊÌÎñññdmu¢¬³²¶¹ÑÑÑ}ªµ¬³¼š Glv ¤xz{ÙÛÞÛÛÛ¢¥¨Qktßãå·ÃÉáå磬´¤¤¤¥«±x›¤¦·½ÃÄÆQ|‡kzðôõ”²ºòòòÉËÍ•«³DGLúúúR†‘agj§7œ©tRNS@æØfäIDATx^Õ‘ÕŽ1¯ÝŒÃÌÌÌ̼ÌLaf¦_Ok²Jf’ì{ROG.É*ËðÿQ5 ÙÉö¤úHoÓ¦É ž`6ÊÍf=ë°¥Fñ2éŠoC8œ®F êœêwßÉ¢ù¤;òiZƒ´,C;*Yqåcò\ƒƒ>£ãQyÉ«?pÌë Wâ$O Âcšþ´ã;QïœaÖEõ)¦ecb;-ø’øs ¬çEÒu&Þ~Ä塸Íöf-ÃéÐàtîë¤ßƒ³n<+m ŚخWêÒ7kxZšù{‡ÏtÞv)¶¦Zn¡&>(†]ºS+‹Ù–Ms &&„ïiª t;í•zœéóž¢ Ú:¬„Ãç 36u$òÑñ­ ¯VÛZ+aÝ—ç»·œ_Òj‘Vƒn?Bè3Ò"Ä¿q:ï¯üxêTª™\.‘H•óæoÏç‰õuŽ}›w¿À5 5Gc½_‚‰Ô”GöµIVNàö¤ G—Ã.~R².Éxjß[ðGúa w<‹®¬4U'ðʸô” ž•¢׃VF[¼áñÞÆzCT Å͘*cUæÞYöUðÞRXS†¸šƒŒw/&2( ×ãðåkX`Üý1døwøýéPÝr ²IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/na.png0000644000175000017500000000173112233761321026711 0ustar mathieumathieu‰PNG  IHDR ®t‚égAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<kIDATx¥ÓMO“YÆñçðüî\øfébV®fgL\¸416dâ„LL& F /`Qˆ¼€Q SP1 }Z(´ R"‚šø¢*Øþæd´)a:ÆÉäßç´¹zëÜwÎsG¾>wµË‰V¥ ë”!­Òv{N¨~$íwHƒ ´º.(¾rÖ¦¯ÞMò‘³,í.š”ë·U‰­÷®¼E…²õ ;eÇ ]Z¬{ão!¥Ö°Y7œ„‹:Õ­F¨ó‚£MJÞ”„Ë_¶Ü±¦OR¾rìS»ÝC·*u-˜$z.eÙ †”ˆ•È¢m-Ä&LJ»§Y'ö¬Qût…õœ¤uÚØ•T«ÇÏûÉ”C†} Rä–9§K‰¥\’5ow‘^=[wͦ/å]QµÍ¦jmV§ª¡Ç7 /¶M”±ÇÐKTrË &¼4H4å•„EÓÎiÒ.¡^NA]¥Í-%Ç¥eLš Ö6*†¢õjeSЧNZ‡¼3•#ÞjvÀA‘qªqØU±âC³viµÁÐ*²ßÁ¨WZ—ÓÖDo48,ç ãNšQ+a^©|DÁy I±i3r&ŒrÕ¨J›æ4 ¸%áºÒîÛÌ;e]N§6—YЧk·¡Ÿ°6Ø4kIJ9¢±N×Ñ=¯‰–üëmNØùoïÃc«ªéßpCã÷¼³¡Rh¿÷v¼´ ÓªÏvÌ9£¨Üí¦*ô‘ôÚG/Lj3dÀ9§´Ê™×!eÇ'³z5OÕ^ñH“:ÝîJ&cB”>ýjF•¦ô™·"ïw=2b“¦åÍr²2Òî;ã‚‚·¼e{*ølU¿“n: ë‘ËÛçŽy5" ãZ‚ÖhÔV¥…m‹b-…' †qµÏ%‘nuŽxâÇÀ‰ ÅzS2îY´-*zoÝ’Ø óêÝÌS᢫.ˆBÖ£C«k2–=÷^QTfËŠŒ_´I‹eå=0¯ž‡fMˈ i6.mMqï-¬YõÎ[˺v[*1a2¶JsE—;–=UpÓŠ*׸dQ‹I]ZtÛk:´‡ïaC ØPõM|îŠ:+>^‰ýf6u[‡‚Œ«ž(ÙÔã’¾= I½v”|”×¢ ¤(©OùÿMÛ¾s˜nª·éLãÏ|ÛñÀ™Alb¨ýIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/47.png0000644000175000017500000000120212233761321026536 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ`PLTEÿÿÿ›œº¼¿^`gmry~ƒ‰”šq>@A©¬±±¨ŠLPTýŸËÎÒÏ˯ÞáäþýøœÀÌÖÚÝ×Ô¹..-ßÝÀíç¼ííîíë~{?ÿûääãÇüöÐb^+„¦¯³·%%û tRNS@æØfÐIDATx^e’‡’à DO¢wÜKÚÿÿå-i_փͰIüUßzG{ßÏwíû“ù¶ç¦;óEÔý<Ÿ¦¦Óé4ðá ˆiæ#ÿ¾ö1†œ§ý÷ð€¢Ï1CÄpΑÈ‘Q†ŒHç?¢žˆ9•¾ïK)=k¥ž÷gíøA$ÇònFÈû1Ø•’X[ãÐ@ 9çÈ9e‰Sl?úª”Ĥ)-Æ mð­1>‹äQ9§µƒ” ŠDSãó/ªJãQR {AŽ­|4* ÒO!C!‡ˆ3^tš„”`A)­ŸrÆyNü& I˜T“Œ ÷iJ¢í– HDü<ׇ¿†€î·e*ï5SÞG)í8Z”†—`‘ÂŽæã¶¸¶0*PÖŽm*ªõãºq¤¾¾ªe»¢«È§ö[éjûê\¹Þ–M‰Z5ÿ»ï…SêÜ/˲¹ÄüƒR§k§T5Ëe¹a*õÑo+¥ LËFËÅpgÓXaV&Óâo#­Ö#sý©~¹®P›ý_Ú'ǘ­<IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/31.png0000644000175000017500000000177112233761321026542 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿ¤ƒ[ª’jĬŒÖȪÖͱÜѶÝ×½àÖ¹ÿöÕÿøÛÿùãÿûìÿüîÿüñÿþùÿÿýʳ•ÙÌ­ëâ»þóËÿöÑÍ¥ϸ™ÐÆ©ÑÇ®ÒÄ¥ÓÀ¢Õ˱—wP¨†_Ö϶Öз×ʭǾ¤ÙαÙÒ¹ÚеÚÔºÛϳÜÓ¸ÝΰÞÙ¿ßÓµ²yáÚ¾áÛÀãÜÁäÚ½åÝÁåàÄçâÈèܿȸ™ìݯö黸ë½úîÂüñÆÉº›ÿýôµ•sÿ÷Ø»|¼¡ÿû꿨‡¡‡_ŲŒÅºžÆ®‘œ€\Ù϶нŸ W¹šuÙÆ˜ßÛÂàÕ³ÖÌ®×ѺªŒlåܾÍÅ«åßÄλŸî⵿²’êãÃÚ˲Öŧã‚ðà²òå¸Ûͤ³k´¤„¼¥ƒÔ¼•­‹eƲ–º©„ÞÕ¹âßÙzUɳ˜¯”p°•p̼žãÑ¤ãØ¼ÛÖ¿æÛ¸çÞ¹ÜбɨˆèÞÂéæËʸ”Ó¦ÙҽϽ˜‰rNÁ¦‹Ê¬†Ö˴ó™ëا¨!ð§tRNS@æØf'IDATx^­“UsA „³ÌxÌÌÌÌŒfff‡™þz¶g·|¾¼¹_û›‘FÓzõÒâ%ýßäÊ,-‰)ss!Ž¥HB#‰ )æ9—)B_W©6U{y5A±3Ï’šÜÛ‹ÉÃb©Ô›=5Éð3~Qu‘šØ½^ [M¸§…§DYò“Qé|ë˜Q?¢7ˆE²¬¥Y_ƒÉ$ž944!³Í°²¯¦8¥@5Ä"‘h2åÙp"g`Ûî¶ýÊrŽR«lÞÈy4‘@]‘|!vCçSQ¾‚#ó ̃úãxèü9àÄeÌ„³Õò#À¹˜9G#p=ã+‰0 ë½><&˜ÇB3÷Ó1´Ù ÷‡Öêµ+‡m Íÿh îõ#ø²x‚0š1:J%­vãLÓ£Öá‘€æõnªwãÆö­ÝÖQ†øzº&ƧïBð½ZwLBis;åR“w§ò…6ÓÛ£!pP«± ·sŸ`ägîvë˜ hX­‚pýhs®ËÏä¨âq­ÒÔ¬ÀIåäMH,º¸RųÄï%¸¹Z†µÁv<ðEû¯F­Ìº}iZÀå‰Éx¿£è—éä•ï.€ßZ=‹ÅRé®A:ýéÊ“,ÿ$0y°·Ô»¼tñéå¾+W¥g#¥·*߯¶ü¾­í@¶H*¾ÚÂÝñnW7Þ-<­$Žùû*EsüüÅaèF£¡,Îw»§xuN´Z¿µë>‚Þ—¿½iÿQt_¶k[úú9’|ž¼y”èuê'ùr±hî4¦ûÞÊ~!ól_;ܸ¯ÕãÎmëÚÚšóÀzÝ.z"Ð3Þ×ù!2›!Ï9½)6¦ø^°ÒØs"â>ŠˆQÁ‚ìw7>÷ŸØõ¥õv=¸?'3 d¨;Ä6½nw›Íßòå“áЖÏ( ŠÚíþËv{³³i‰<åwߎ_ÈBGùÔ’Z½ŸÍlÛw?ªOµwöP8…k²6Ã?9qz&î‹§j·{»Þ£É²¬DðÈh·Ç„Œ&tòìÍæòVÜŠ8’¦q€‹JLÅ89!ßò¤ =\.oÙ¬c~IW AŠb•X©T9‡}_@ˆ)à2¤Ã÷vÕnÎɲȅh Š4æ÷›Ð”ȸh”œóJŠü3‚Àq¡ ‚%‰ ˜…Q#†yç-D4.Ò¤0—¨›I ‡/ûÎu®GÑr ÈE©0`‰ ó¯JЬ É>}B!ê§¹Tàª0ª¾«¤±®°*3„èH:‚Qrˆ.VÔyÀPöŠŸõ´a4ÐK%á2”Ø*M``®{¥br&"fxܱ5À—X6Dc¦-‚¤V* `qCá1†¦ƒçy/ìõðã‰Ç g=“t!ÍóÞàüSÛæ1Šãæ£üøûϼÍéÞÈy8KZÒdòßíož}tôºµÿákç£9£èºŸ£ŸSçÍ€õ.«z rzñïíâMh!ª¹Ä/£oTåÇ©¶IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/43.png0000644000175000017500000000203512233761321026537 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿ¼¼¼ÀÀÀyyy–––™™š   ¤¤¤­­­´´´···………‰‰‰ÄÄÄÉÉÉÌÌÌÐÐÐÙÙÙÞÞÞàááèèèòòòøøøúúúüüüýýýþþþµµµ¸¸¸ºººZ[\›¤ÂœœœÇÇÇ{{|¡¡¡ÓÓÓÕÕÖØØØ~~~ÚÚÚ¦¦¦¨¨¨ãããååå©©©ðð𫫬ôôôööö‘‘‘¯¯¯ûûû°°°²²²“““ÿÿÿ¢¢¢†Š¤ÄÅLJ‡‡rrrÎÎÎÎÐÕ©®ÂÓÕÜtvyux†­­³•–šÜÜܯ¯±¯³Çwwyäää±²µSU]éëìêêêìììíííîîíš›ŸEGMcccœ ´¹¼¿dfmº½Í„‡œ¾¾¾¾ÂÐjjjopqªªª×ÙÜžžž|—mp‚¡¢¤‡ŠÀÂËÁÂÃÁÄÒ£¦¿æææÃÉÓMNQ¤¥§¥ª³PPPÊËÍïïï´¸ÅÌÌÎÍÎÓ§ª®“ª·¹ÒÒÒÒZ\dÓÔå’”—’—¤BݸtRNS@æØfKIDATx^½’Uo\1F¯íË̸ÈÌ aff.33þõFÛMÔ¬”>U=O–¾£ù¤ñ`ÿC–Ò½[SËPÔ­ÒÛ±[rs쩾½³³³q<¯[CYÏsb…xtþžÿX››[!`¦<Ù[¡žGøDó‚J ¢3Å«àÍDò|k ÔÄht¥,sxS^¡>>E↑²bÇ7¤Ÿïà""Ðm¿"½ùz•GˆvÇWøB “…‚j™Jâ»ÿd Ħâ5ø5‹îE Pã$ïhû‡Ëé~þüÃëGPÔpsb³ô©>!ñÊ‘9?›>ì òÝŸ P¢©#BˆÁDÉŽšÁ¹g_öŘZ^†Ö÷̆ÎCû¡Ë×ÞúÉ·½“éït_°8efêxùàóèÁÇ™”šy1=ztùìýã™ùM¬OEÌ“Uºº[vwƒyôj)¼^d†K í:õ¤Æ£M³Tf †Ž°h‘MƒIÈæ®Ânt}(¯‰~9xZ@Dn4‚õUd] -¹*lj´ªg‘’ª86UÐ |7¨°Iº§S®S£í*¶Ò…xl1cb¿ñ¬:.Rœç¹*¸ƒr[ŽW”ôW®ñÜ;2fÛ¶ƒ9VK% ½mõL­†ý‰ëF²]A÷ÜV¤AŽyR=Ï«"e-OŽtABÃ7ç¶XªH[$,LÖ™rqXpô8ÔjËÚ°(Š1»çØÌøˆº•ïjW±†;<×LåTÓsZ’¢6eû 53JØ?ã¦ØY²ßÙ”IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/10.png0000644000175000017500000000165612233761321026541 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿu}ƒþþþlrwHQXY]aeim-4ŽmL?úèèÚ;Xx€ðrjƒ§±ïKTOäß|6Ó3ÚF€,ÄEÆ]Æ òîex{*@.!rqEv›‡8ö–ÔØ WÃb/jQiž“'L®,ÓTÇÇù<¹Ž§É2W Ô¦ùh¡¦ ®è*ë-•jHk¦›¤lø*ÈeÎ ŠE¥ mžoJ^5µd1I›¶ ’ çé%£~:N’<@¨€ßİ(E:vHý^6P }"ð½Å„*9":t$kÚÂZ“(O¤öŽÑO¯ØÎ« ÉÚvJ³¾½#—ìÐpÕ ð>×2 þÓúÏáÇŒuƆp‰íŸµàŽ3âÐÏæ ®YÕ=‡ÛüÀhÖ«ýf]ƒ¯ÕYÙ_\ÙHåÖ©4ýýã0ל^X »ç šTçw»O÷Xø>¤8ôª>|v¥Î ^<·ü x¨ þ… ?œëzØ··eÍê-Ù÷]™¿/K?`oõIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/0.png0000644000175000017500000000167412233761321026460 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿ.27;?E?CHAIOIPZSV[W\edkxehhkr|pw‚zˆ€†‚Š“‡•«°´­´º´ºÀº¾ÁÄÉÍÐÖÚÕÙÝ×ÜàÝãç]eocisƒš©LMOŒ’›‘—’•™œ•œ£œœ££©Ÿ¦¯ ¡¡¥­°¦¤ªª¬¬%(-gmu±¸¼j¼Ãµ¶µS€„¼¼¼¾ÆÊÂÆÉÄÄÅ79?ÆÎÓÌÑÔÍÎÌÎÓØsuvÔÕÕzz‚[dkÚÜÜÛÞá}…âæéããäéééìììíìîðððôôó÷÷÷ùðúúûýýýþôSUËÆ Ÿ¦-i®µ‚‚„¢·¹¥ª®+.3#©¬µ…‘“k²º‰‰†®«¹‰˜ëãŒpouº·Ãc ¨WW1s©±Nfg›­¯e•™‘’”îîðX|YVÑÊ$ÔÓÏ«¹»¬ª’„’’£°®¹±µ¹áÙ‚~%sqaéèì@?\[Fu”–½¶%†‡vžtˆ‘—Hqupm}z0N]K ïHtRNS@æØfêIDATx^½’Å®1D§™‡™™™y3ó 23üzf9Ý­d—Ô²TÇuU¶mÿYÊRA–¤|A®´gs‹]çË¥ªª©ª®kÕÏK}£ß檊®ë]MSKŠ"øÎ²cÖÊe¥­u»ª"ÖÅéÁª?ù’×4¥ZRYö¡ç[Gá´jH¸÷ðRké*ªÄïÔz“‰¹ñŠÔUQÔ5Yh#K…9º“sbh_àE¾Iô-À¤ƒ¢?(‹A7ÃAÄÀø@O„ç‚IAQ ³Œ˜0ëqs,˸G‹–Q„æ<günÑbØ 4N¾á,ɹ=û! ÁìMhl0;‰ TÄÏp' ‰u f o:’“4K;(GŽül±c˜Ÿµ£ŽK:è ³«\PD QŒ¦T‚$á"<_½F`o/¾‹Ëâà.Ã+¶Ñk\~w_ÞlQ½k™ Ñ8¼9ûXX‰˜ßôÊÉöËÓÅûÌÁ¨©›>c®4:ÞÜž?Z<›þð /®oþìEj»çL¥Ó¯×¯¦^â33Uçfáâú.ûsqõütíh¹5½EôðÓx˜ x§ë_Õ{·y›QCyy"öf±WÚO[¶?(ýøóÛŠío?Øþ…~^QO&<IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/32.png0000644000175000017500000000200512233761321026532 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿ¸†ƪ6Ç­&Ù§ ñññóöööúúúþôˆÿ¨ÿ­ÿ¶ÿ¼ÿÂÿüÑÿýãÿÿû¾±YyXư4Ç—Œjʆ Ïִ̽Ø›$ئ4§oÚŠÚ˜ ÚÙÉáÆEåäâæÚoèèæéªé·é¿<ê˜êçÂïîî´¬t·§NôôóS<¸®fýâQýýýþ¤º•"»¶•ðAÿ±À»™Á£*ÿÊÿÓÿÚÿßÿ÷šbLÅžÿþóÅ«ÉÛí¸;Ó®òïÊÇ¥ѾJÑÐÄΞ2¦ƒ*ñ°Ô°7¶sÔÏ¡óçw@0öÄöÓEıKø÷ìÅœ%ØÌc¹0³®…˜rµ‹ ¾³gÞ® àཿ}ááÛâÛŒ·ȼcÿæèçä겞fÜÛÔÿþïЮëéÕïèŽï葽º¤–pñðãÖÒ²×΄–r"¦z#óê„ÉÇ´õɽœê½öÛQâ¶÷ôÉÙÓˆúô£ÌÄŠû³A-|.tRNS@æØf3IDATx^…“Uo$1„=Ì´ÌÌÌÌffæCføëçÍe´£Õ%©¿Ô§ê¶» &Dàiu:Ï{{{Ñ™‚†'Aÿ7½t#n­ùƽMŒLFµ.:°5å-ö“ñí7™_ñ”m9ª±‚»-½ì·VÑÀ\9møz&µ‰…øÅ8Ýo8L-¥OwôÍdR?»ô0‹è¡hd鋯ÙfòÊI’½)TÆ+1­¯HºKDz#ËrPlöè½KÈE”q÷]#mZ>b¹"?Ç:_§2M=Þ6Ì5,Ç ‚(Š_dÍ3¡)]jZx£ëï$³Ð+P÷b –» þŠ-B¿Z­U+g͹òG¨øÐ¦Tªµz"Ï…íó¾=2–…5 Ç“$ÇÀúùyB‘Dæöo {( J:ƒõ2ðÔ PƒG".­¨îU@Q‘Í­æÁd‰òf„7‰šÿš„]ƒuÙ=Œ¬ú7ÜÕk¯Éem8~¶®שBa~ö(«y¨pocˆÅüê´ ¹á959žºÈ±¤m#ݸ›Ï[ù±%¸>˜Õa…mÀ™¤ò+û¹Ð b“dØeëÙâðXë_[±ßLº…Ûí2Ó3¶¾ùâŸãšÅ%R:o[zW.„ó¹Õ/ßO¤õ’¡4¼Ÿ¨û¥}Ç,µÄ5æë*05\ûü,¡+‹r»”4=ø x,X½°ä1xTÝÂ3¿×½M? Pþ ã/’ a_ZšÀIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/20.png0000644000175000017500000000160712233761321026536 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿÚÚÚÞÞÞøøøÿÿÿÌÌÌÎÎÎÐÐÐÑÑÑÒÒÒÓÓÓÔÔÔÕÕÕÖÖÖ×××ØØØÙÙÙˆ˜ÝÝÝÆÆÇààáåååéééòòòõõõÉÉÉúúúýýýËËËÍÍÍ^bpÏÏÏ‰Š‘š’“““”›Úퟢ¨ ¢¦£¤¥¤¤¤¥­¯«¬±¯±´´µ·¸¹¼ãããää亽ÀÁÁÂííëïïïðððÃÃÄjqv„ÊÊÊüüü|}ƒƒˆ“ÜÜÜÜÿÿ™š ‹©´ÍÎÑŒ”¶¹»Ÿàôççèèè膙¢¡¡¢¡âöÅõþ€‚ŒÄÕmyˆª¬­ËËÎËüÿÛÝàÓÔÖ•¯³•ÐàÕÕ×—— ˜¾ËÀ×܃ˆ˜Scsž¢o{ŒÇËÏÇáêÈÉÌÞéíàßÝqs{àêìáàßYfuããåKSb¡£¬æææçæå¡©¬|¨èÿÿ^k|ëêéëëëìùþÍÎÎíííîïíîÿÿ˜›†’ÏÎЦª¬ööö‘°»ÐÚàQT^”š¡ÿÿþ³²±íûå tRNS@æØfµIDATx^í‘óÎe1EOqlóÚ¶?ÚÛ¶­WŸž›Ìdæ¾õG“v¯æ·ÓRÿrJkð€êןÖl0•Ê›ÿ…J>Ÿ?w°±µ“ßyv“:Ü__ßÿñ7 „>ï.¿¸v¹°{ñá×ãƒóg¯ —Û(œçèà˜ìâVzÀeŸrÞV/ÝHŽîë¾Ô#JˆÞª¾Ÿ}}ëz{©ˆgÖWï~Kf§wª""¸› åðŠþqxÏÛXO¿;ùq]7Mà…‚íaé‰S™z ïen÷†ÓŸ ]’,7¤*ì8‡ l»œ™vp²ú ï¥q#£ÈZwB…^ß±äò½bUÕÛ»Nq&–?½|Ò­R ¿9¡mhcÖë´aµ¬•›æ‘eÁ£öZ­Ööù&Z@x^ ‚…MUE‘gi005î0q¦YT¡Ì <›Jqœ \‚aX^Ù©õl$eeEÕ4MQ4`U’`ÀfŸ=Kfèñ8Ó)–Üfh:1_S¢¢‚\jb|ÅVý˜(ÁI âÏš"xžçþÁû‚b’Ï9å7¤ýAmÿÙÛ\IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/25.png0000644000175000017500000000156312233761321026544 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿ¥¥¥¬¬¬³³³ÔÔÔ»»»*V<]-X‘/BYBCDiii|||„„„”””››››èø¸éÃìËî¨ÙÂÂÂÅòüËËËšÑâââéééðððöööýýý%uláøm¦·quuu¸ÒvÝóœË$-‹‹‹a|šÈÞf¦!Yf(§Ç)Ju­½Ä+ÒïµÆÑp«J{ P”Er«ÜÜÜQrSSSìììU^cZv£úúúhƒ JQcƒ¿N‘­¶ÏáÖô¾îù|›·?‰‰ÅÔ,™ÅW·Ù\›¨Ï1ÎꣿÔD_D‘ÀǺ®Kfqˆ­.Úö‹ /¨Ð¬Õ™ ƒ«Ð2uª„Ï䇞º‰±È2Ó5t‘’±½6‘«”¹Ã=¤´¡½¾ßYl£èùH´×•È ™ºOb‘~»R¢Ì$ÌèT©»'>o(isÇÝéX·ÌÌáìÒáí`—Z‚c‹¶èòöd’³eÜófŸË£Æöùû)³×iÐåvpÿ›tRNS@æØf¡IDATx^í‘Ó®%Q@{£mûØ6¯mmÛþõé>™û>p×C%{e¥’"þ— üj.—KEcýc)÷íëÃYøµ±~ã,;³©Æ‹V[uöÕ΂ºzW-;³åDb^-OãjóyŽÒ6óZ¹¨u~>¥*Æê3§­•©C#Ñ‹Ý)¦úz«¢wé›÷i‘Ë?0Úz‹=ÕrlßÜþ]l4N¶¨·O¯ŽªÕJõR{©µ{)!ÆAö%M³Ù½ÛYæs’ù³·û>Ùy½QK^¥3ßB<þ1ç”.§tû ³–¡§ “ÊÔ”.»vm¶A¶®°0m9kÚ·˜ËËã;s¯Ä,—V¬/”Róx Íç\})cßĤä=S´1´Ãž\0'³ÀµI"ìA˜LÜH…ž„Ãè…Éàüž~<â:œ©ðŸÌ9üA¼=Š ÀföIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/36.png0000644000175000017500000000203612233761321026542 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿ…O_·®hÄ·hŰ8Μ)ֲإäºç•ñññ÷÷÷øwýýûÿ¥ÿ»ÿÁ±Jþô‰Æ…Õˆ¸§O¹—'ÙÌdÚ§5ÚÙÉÚÚÕÛ•ݯãâÙ¼{æÛs¿›èÁèçäèèæé¨ëmïîîðÁº—ó¡ô›ôôôÿüѲ‚ø„ø«ûhû“û™ýöiFÇ­&Å«ÿ¬ÿ´Ìœƪ6ÿÉǧÿýãÿýôÎ̼Ӥ(þáQ» ®LÛ™‰gòïÊó€ŽpóØóçwà´{à¿BõÐCöÃ÷º÷ËãÆDÉÛЮÑÐÄøÛNø÷ìåäâ–hè„ýÖD™y›l·³ŽéæÂ¦m¾»Ÿ¬víÀ=î¸<ï´ÿÕïîÝÝÕ‰ËhÿþïÖÒ²û£–JˆU,í– ä‡ÀKÉÇ´ïèŽ÷ôÉïè‘ÒÎ¥ÿÅPÓ¨,ÿë´ÿïÕŸw%Ö±7ÌÄŠéy'öqDìtRNS@æØfLIDATx^…“cs%Q†‡6®mÛvlÛ^Úøë{&›Ü›Mýaª¦ž§úí™ÓºW, =]¥Ò3†>ÎBqp\OVx°{äª9¾Bî7¯¬{œ„¡æ+±àõEñBu;h³š7¢­$´Ã€8ªX[‰OŽê\'pÚÙÆ½Ø÷,fôü8Nw{š!&æbáÁéì—™Zxæn~›”ªvC.•³¹lnëÍÛTvâå.$”´£ü%Ã_ò™L0˜ÉðâÃëy~m`˾àÊÀÁþ»`¿Ÿ¹|mãn„ ´ØðbåŠ4ð0_8HÁ»)øºz›pŽ9Ž4±"Éá­­0†µ,ìÊnš–‡Muv×PB™Œ"QXK#GiÄÝÎ8î®@‚\_@< Ȳ)#.yÒ<.è0ÞÆ”"E]ðî4¼“š„Þ¡Vp¬‚ØC'O©½SSÞ3š¢ÒÑdÀAÖÐÃÐu“}³© êõ3½êR¥ÌXó>7Cô¯¸6ê2¾Z–ÔႵF÷@0€"ë\$( [¿l¨¢üúv CXçö¢QDý·§Í6óK½10ôœ!ˆnÞ¹êÖG“4øéÅ2(Q´–øoí"óÓ1‘Ô˜XŒ±'ªÜpÞå6²ø[íz(‹%™$NªÕ5·qÑÈ8‹}­ÄÒ3wLI¦m}‘Xà‘‘°ñž»YÚ骬¨Åeo‹„XûDmþs³u¸§N¸'øY`aäˆtBÖ2þÌíµî O œïø fftºç¿TIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/24.png0000644000175000017500000000135112233761321026536 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿ   vvv€€€–––JJJ²²²¶¶¶ÎÎÎðððôôô‡‡‡¡¡¡¬¬¬¯¯¯ÏÏÏ:::æææùùùýýý„„„ÛÛÛˆˆˆ///MMMRRR™™™›››ŸŸŸVVV———¤¤¤¥¥¥©©©Â···°°°]]]³³³cccfffººº»»»¾¾¾nnnoooÄÄÄÅÅÅÆÆÆÊÊÊÍÍÍtttÁÁÁÒÒÒÕÕÕÖÖÖ¨¨¨ßßßàààää䪪ªçççìììîîî{{{òòò|||õõõ÷÷÷FFFûûûüüüƒƒƒ§§§}}}mmm½½½˜˜˜¿¿¿HHH~}~œœœÅÄÄ~~~ ŸŸÉÉÉ<<<ÌÌÌ‚‚‚ƒƒ‚¤¥¥ÐÏÐqqq¦¦¦rrr×××ØØØÙÙÙ¨¨§ÜÜÜÝÝÝÞÞÞ```BBBãã㉉‰ååå«««ŠŠŠèèèêêêëë묭­­­­yyyŽŽŽ±°°±±±ööö“““úúú•••–••¸·¸þþþú)tRNS@æØfIDATx^íÊÃnEQ…á}l]Ú¶m£¶mÛzõ6¹'é tÐÁý’5Z?ø[#¤uMðØ–r¥ù9K&í–CŠáÛ£OýPäÁìzˆ™X?1Ô#„Þ¶‹hE$çñ£ž«#3xØÀº3 —èó0PÖ¦ý¶YuÊ­‚;¿jƒËξêó6†Þ$~"\ì~óÎŽ¥ÝÜšÏ+n¬žQ¦®tW‚ýƒ)›À`äBÓ4™ C¨¸?*à,­Í¤PÆâ>UJt¢æ2«ËóòýÕ¾rBYOË‚j81in9´…±C||)*JUŒ“Qm yó×CéB#ò8v~õªöBYm4(úš¦*5¨Ÿý/#ß“".€° ­IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/45.png0000644000175000017500000000121112233761321026534 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ`PLTEÿÿÿXcihq{‡‹—› ª¯µ:>?IRUž¦¬z|~¶º¿ÁÃÆËÌÎÏË®ÒÓÔÚÚÛľ¡w¥¬±ªŽ”ÅÒØÖ¼Ÿ˜€åäâþýöÿùÝòñòíè¿øñÊ&%'áàÃÞ×°ßÛÌ75t tRNS@æØf×IDATx^•“ÇrÜ@ D…491sƒ¤ÿÿKcVä®J–ÆDU?v7|û¯Ùžó/y¿]unû®÷/òíú~Œ2ÛÞåYç³?>”øEï@ÎõƒÐtU;’ÇÜZÎ?­wèó8æeiêÑ®ûö=`žÄœçw%²ùeÑ? ×Sÿ¥iJ˻ūA7IÓ˜û´¶h‹W‚¾FäR­Eð@ÆñôŠÄAœ‰Ñƒo:ãxÛ¶øÈžœ ŽŒñY÷ý ä…R,%I(‰ Í l/ÀsQ‡ä] Œck·ÓaÍ‹†bD¡Ô=O´A`& µÖè´1.‡sÚžCM ˜ú—–HœªCS¾ˆIë‰r,µG°Û™x$8©â=‚¬k-‰=X‹€lúŠ`%Ø£µ^›º@ªwÏ%Р½ƒ½#ÜïÖ4F)9ôËø¹®‡ˆú­)ç÷äç€~ˆŸ~Ÿ?£÷÷Ž”ž{ìYÔª a‚ôiïßuŸµfo#~ ÄÒѯäá‘R+¦çuÌ×ÿ ©´][0¥ÔXU84¥`$%Â罺ýeâò`j^êM‚"WÂÓ«úC gÛK¢zû‚Âv¼âŽ(¶³îÍNv·ìv‹­ví¬nÜ=µÙtã‰vjÓµóUs-á±èÓ2‹uX]¶ÇìI‡ÂfpÆ ŒJeªb§Úb)ŽKLe±Ž*µ04üpþ*l ÿV×y¾?i‰öIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/38.png0000644000175000017500000000161312233761321026544 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿGKR.17?BG-.0V]h[blcjveffkqz{‚‹€†Œ‘ššš¦«²±·¼²²²»¾ÀÍÓ×ÑÖÛØÝáÝãç9J–늦iµ£|®×ù []è„U–•n{0Pš™g`ÜîrO˜RGUä3¥Y-GH× 'ÞLtØH&ÓéÊå¶Zââ|n˜‘2‰f3-¨JM ¶ CVùHVÒi>J&î‹FalaâY_¼VʆíÉ(œ G|Ò{Ä¿Z ÀoØÂ/ÃXi×J)Ä D:tIÛ}ÉõO¥*¿ oŸÚRŽûb!/:Іy@aXBðXß\zhÂQÌ],ôBÎŒ =î iÓÿÁ‚€\Š @gS6›Ý,_Öø† n¹p/À #ýÖΚ°<¨ûuÏïDÝÑh´‡¢ˆÓégçkÆðêš$¯9ÎåßÞþÁ]¹‚A–ÛÒ¹˜Œ‡§tøá¸pZL!hý)/ û…ÙdšÕÃÛ½÷·Lùäp¿ ~<~bÆçßg³½Ñ»çf‹Ùù§Í%´4íðêüÞú[¦›cè_òV›Gâ‡Àj&IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/44.png0000644000175000017500000000211012233761321026532 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿ‘•®®³Ç°‹,ÅËÙÍÓàÖÚâÝàåéêìíííïïïóòòû¡ûÇûëyèééþ«ÿöÿûÒÿÿû”‡cojTsf+³~³¸Ë¶¦‚¹¬Sº¿Ñ¿ÃÏÂÁ²tYȹYËÐÚ¢¹Î…ÏÈ·xwvЯ4ÕÕÔÖÁGxNØž,ÚÛÛ„cÞ°ßÓØßáäéèÀˆr,ˆˆˆê—êèÖë¹ ëììM<æçéð­–oùùùúÙ=š—ŒbU$Ÿ…+üÓ-ý·ýûé  Ÿþþý£©¾©®Âÿýäÿþó¬HêÙo¬™c˜ƒFÆÂ¡íÔNíêÃ× ×Êg˜˜˜òÆ)ÙÑŠôÔAõî¸õðËöÞYöì¦ùºËš °°¯ÍÍ̽•àÝ¿¾¢0ãÀ<äÜ’¾¾»è£ÿõ¸¿¶nèÓVÒÕÞÓ\LÝ—ZW>»±¡ùÊÔÐÆãäâÅìå«í³åÓ²ßÛ³çÉ.çÏLçã»ÿõ¬Ž] è²/ÐίƸ“ßÚ®õóâ«r6tRNS@æØfvIDATx^}RUsÜ`32Ã1333S˜™ÊÌý뵓æ®Í$§7´+}^@ÑÀT l§Ó_/Vžådm;çóv KUžÚ>¿7T£ºÅÁàcçNÐí>ÌfO)h_×ÄW¹ú²È™k²ú½‡7éðPj¤ÖK¥›£*«¿†ÛéâÄ`+4qÍÝ‚ý¦P¨–nÜBR·L0\e ©†ý›;“1˜^õÇ9Vßùïç­³B9#dà‘‡ øÓT©\”ÇlÖŸ«#œâXž¤¼ïÕÄA¥òWð.p74öT½²1TÌŽÚ8ÅFrÉÎ-8œ' Ìa ºÀ´ÎF/ Õ€'ˆŠ8éÔ‹£ÐŠzøS›3¾˜ÛÐðàXEŒVÔèrRd÷v4ßk_´qÏz^'$ޏ@£¥¯ò$^$ã l.’¹V¤ìw:㺽âO‘TIÐ8”ökô—eØ„õ°<†ãFÈIdµö@,n„¼þûœï'ïÌ'kß• É|탠Ëèr!º°Æ·gr»©aüÊÒÁ«"OjB,ˆÕKh×>qÌš}·¡Ñh¤(ss³s#“¢ÔjJÐÛéÜ9È4ÝWË1A(ih•Æ}Ö÷'÷îr­%û5#܃¹Ukád`‰¦Ç¡ëÃdbסïïÙÝ›ë°îÓÍsͨÝ‚áÐÎnjkm¤'Å•·Íi^­Ü[ýúN+Òhæê'Òægeo"ÈZUu{A-m“­›ÅjÐ&ÝÃ=ê‰Úsì‹iþnø¡/c#^=ÿù'-ÏAºôRÀ4 u*ÀTTŠˆ?¥]mvqŽç‡IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/41.png0000644000175000017500000000176012233761321026541 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿ†††‘‘’ŸŸ ©©©®®®¼¼¼ÅÅÅÈÈÈÍÍÍÒÒÒØØØÚÚÚâââìííõõõüüüöööœœœ~~~óõö¿¿¿±±±±¶Æ™œ´µ»Ì¸¾Ïº¿Î•••¿ÅÑÁÁÁ™™™êíñÉÍÛÊËËyyyÐÐТ·Ò×ßÓÙâÕÕՆС¡¥ºÚÝäÞÞÞßäêåååèèèèì𥫽¦¦¦îïñðóõñòòóôõŒŒŒ•¬õö÷µµµ÷÷÷øø÷ùùùÿÿÿ¡©»¿ÃÓáæîÛà篴ÈçêïÚàèþþüáå쫲ÃÝâéÝâìˆˆŽ•–™ÂÇÔóóóÎÑÙ‰‰ŠÅÆÊèêí®°³‹‹‹¦ÌÓàƒ„…ÍÓÞÎÔß½ÃÒ‚† ³¸ÊÐ×ãõøúÑÓÔŽ¥¡¡¡ùøø‘˜º½Ënnn»ÀÒª²¿úúøºººÖÙÞÆÎØØÙÜ«¯ÃòõøŠ‹’ÉÎ×–šªËÐߘšžwwy¢©¾ƒž›¬¿ÅØÀÆØUUUúúúŒŽ©ÃÉÕ««²–ûtRNS@æØfIDAT½ÁUwÓÐ/nMšÔÝݽ«Ï}ëÜÝq÷Áþ:ëNQä‰Ã½øßr<Ë^ãO4ù¨¤•ž¬®ñ[•O¥Ù2=Ûyï+øUWÌWª±ÙØàø¥Q§Ç€Ü#SÝ4w9þt©|°ñ®–Åñ³ ¿lÝü`M©~»mÜa;eq_IKM¼úèËŒØ sÓ#¯I´Ñ×x©²óxѱ‰ØÇmÉUíA~tzm…òi¸³’Ïø_\yR±áDdóò\iŸ–gc¥ê¨ýM=ò’Ë^¥ggöÃr»î÷G κ)|nDŸ^lMlOÞ¢«U}uÒ3“LÌDIÛ¼ =\95V8­ÉZjêTßÌ{’µÏ…áZĹN Gß8ÚÙ^ÜÔö¬™œiz7’س펜/Ý|’p§Ë¸‹¹µL(˵~v6OøÈ‡¡4úT)+z¥©°âÃYBº¸ ‡ãCE|Ç„½^QBZðÒ’‘64³§— ]|ÓMËiÁCØ2˜ ¾ÁZ<\4P^ôqFÚHëèt,m¹¢“"é/¡OQx’ñá–Ùèã… ÐmšÁª =9 ª¢Nu€x÷¨*º‚,á–lÉf©*M…IšàtT–§]*å·Ù̈èèXIOIitdC6/ó€e9(‡(WT‘nœX®h YLKm ’ÝŒOÐá.–Ä_HA˜ü;_sT LfºIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/21.png0000644000175000017500000000160412233761321026534 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿüüüRQNd\PnXˆ‚z±®£²°¥ÐÏÎðîìø÷÷KJF¨“|¿£‡Ä¦‹ÞÝÜ·¡Œ¹¹·ÿÿì†}túî­83+‹ˆƒ®ª”›•ˆ “… žš|um«–€­™„­ ”­©£JB7XOC[ZW³™´°©µ†ƒzm¹³“¹³£~|yºœ~?=8¿ž}‰t]d`Z¾ŸƒÄ»°Å |Å¢‚È£€ÈÈÇɤÉŵÎÊÁkh_ÖÓÉØÓ¹ØØ×¿¾»ßÜÎáÚ¶æãáçäáéçäëåÇìëêíã©‘}eñððöì·öõõwob“ˆûõÐ–Žš’ƒ¯®¬ààà°–zãØžª“{Æ¥‡™”½¶¬ÉÁ—íëä’y]ËËɨ¥¡öòÛ¿ºŸÒÌ®¶¦–úùùÀ¼ªÁ¡þùÜÿû·ÿûɪŒi£¢¢èÝ¢ÿÿä–m¨¦œš‡–ŠtŽŽŽÕÔÔ­™|ôñå¶—xöîÁ{eKÙЛÞÕ¨­œŒ¤ž|­¨…¤ þøÓ­«žåãݦpæææ”‘¯ü©›tRNS@æØf²IDATx^íÓ’dQD¯m”mÛ¶«msl{~}êžîŽù‰^{¿¬ÈŒ„þóÈ!Q€db ‚‚þ$Iê’$eø^øyýwÖv`R»^2Ôæà©¶iú¤ ´¯õ{áÅÍ”2}}óxüMžDYd°‡|ÞcYö ü TÖÌÂi8ÜŠÂÔküõµNÜ$3@€móÓ‹V±Í§¡)±47Ç£µÞIÉFƒF4]]¼¬õâö+Ö÷¬buEŽã^ë}7W(@FT_{J©¤X†¯\-›»:ëk ð·]Ia–wžLs6k–½Õ²Ž¾u63|mÝy©2©¡k?EÏt‰ŽîWÝ»‘aõW a3Ï ;!Õ;ÚQÜûñSQ{HÅUtuLv0®»­ö{#™rÓ wnIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/17.png0000644000175000017500000000167012233761321026544 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿ.27;?E@CH@IOJPZSV[W\eciuehhjr|pw‚zˆ€†‚‹“«°´­´º³¹¼µ¹Á»½½ÄÉÍÌÐÕÐÖÚÕÚÝØÝáÝãç€}9%(-e•™ƒš©‡”Œ’›‘—•šœ•œ¢£ª ¡¡¢¦¬¥­±ª¬¬fmxi®µ°·ºHMQµµ´j¼Ãº¼Ãkos¾ÆÉÂÆÉÄÄÅ^dnÅÎÒsuvÍÎÌÍÔØt©±ÕÕÔy{„79?ÜÝÞ}…âæéããäéééìììíìîðððôôó÷÷÷ùðúúûýýýþô›­¯œœ£ËÆ NfgSU‚‚„¢·¹¤ª®k²º©¬µc ¨…‘“+.3®«¹ë㈑˜‰‰†‰˜‹ˆŒS‚†WW2#YdkX|YS}omz¥¡°pm‘’”ÑÊ$ÔÓÏ\[F’„«¹»’’£sqaáÙ°®¹Hquéèì@?†‡œ¢§¸²îîðu”–wžt½·%Ÿ™Ÿ¡Ÿ¦-N]KÈÓ|ÍtRNS@æØfæIDATx^½’CÛAE§m{lÛ6?ÛŽmë¯g–ÓÝO²Kî¢6÷Ô}QåøÏú¬dó²$Šrµ=›Ûì§”kš®i†¡×ò'õÍ~?”¯©†atu]ST•\IcÖEÕõnWSÅ A XS¬ú“]SkeM•åšÛ9§¦„Ç~.»$dUËr{•Þdbm‘Hrëª&І.óMbdaŽî B^ŒðœÀ•ˆ¾ tH †d1äc¼1°Ð弓<¡â f+1`Öïó²,ãcHmÙJDÚëïÐ8ôÅ1i…­@óì,Î’^Ÿÿ B!Xé[¬D" 2 ‰u b@(~‡ <“4Kã‡#&_r!% ²%ï°$Nwh¸%­Î‚Z ‚`ˆb4£r$ ·àùêÛ[×1,pÇ C©ØJD¯yø6õàpk‡º÷}ûþ5ÑÜߺÚ,®DÌNÜG=%Ù~óótúþúhÔŽ6,Ÿ1_$vçÎŧé£ÀP¬¯™ýÙËÌnÏ“I§_oÜL/‰wžLÌ (žDQ¬»%çâæùéöy¶î¶¼ÅÃý/ã¡°y9Ýx¶þõW£·Vp˜5”—7bΟÚ~ÑvüAé'ß^UÓøéÀñ/ô_ZM‡ÆÐ¼IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/19.png0000644000175000017500000000174412233761321026550 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿùùù)(%„{rˆƒ•ˆ˜‹™’¡ ž­¬¬ÀÀÀÞÞÞáááñððõôçöî»öñÓöööúúúýýýŠv#"!©¥£™–’Š…d^Xš—•›”Žmkixrmžœ›¡™{yv¥£¡§¦¥GEBª©©¬ª©­© |z¯¯­ººº¾¸ŒÈÃ¥ËËÉÒ̧ÓγÔÔÔ××ÓÚÚÙ@>8œ•åååèèèììì‹…€ƒzCB;;95’‘\WT˜‰OLJ210öïÉ’ŽpÏÎÉ¥¢he[îîî€ujÐÐЇ€z°ª†˜w‡ysibÛÕ²Û×ÁÝÚϲ°¯³³²åݨ´®–¸·±éèÝ£}íä­îíäñê¾ðêÄðëËðìÒðîÜö¢õóß¿¾¶Œ‹Áº“ÅÅÅÇó„‚€ÈÈÄÈÈÈÊÚº¹µ®­§ÔÑ»ïëØ»·•½º®¥¡‹˜‘„ÊǸáàÛ‡„oÏ̽™”‹¨¢|ÄÂÀÅÿ””’ÆÆÁUPKïèµSÁPtRNS@æØfIDATx^僎fAF»¯mý¶mslÛö¬­Wß{'ó»'¯:Õ'Õ)ðÿP£éXš†,ÍÀéT—ª±qš¦g¡#hŸ&ÊwÉ Wú…p¹»aq{Ÿ¤J¥\´è¼Ca?¸&LùvcvM@.„Ém¡Ù|Ü.ž|œ-ÈÓ'_”ç‰ÎÚ#¶z‚Üœ·CïBþÜÇó(óò_:.( él¸z¼h= éÙ=ð¤6n¤(Í«õïGå«t†¬-º G±%Iï+ÍnVjwY^Z9u˜WˆÑ²r¸¨ç ¿-Œ>Gñì¨rË”y ÞòʇÓydå@ñç­¬±túvèÊž¶C†ù)þYÈ‹S+qa,^!WâxWwšb;IÑ9GxÈq¦4rv´-SÑejþààXó‘O BÓˆZ§nâ×s4!Å99_Oá;&âñð2œ‡Ú´­S Ì„lkâ›fF΄4ܬͭ±Ðã‘”ò`Èܦ۴@’Ltô~ýò:I[XCõ:K2>\r·},7p´•fðCŸ²@Ç@Y‡Q7&û@<Žk MŽÖpIŽ Q“’ÖÌú†‰¥CF•§ÛÍðèK& „Œi‘Ý ,]Ê *Tƃ§-'Ñs:C¦2‚£d'ã“ôÍŸê&!áfðï|î½P²É2Z„IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/32x32/4.png0000644000175000017500000000167312233761321026463 0ustar mathieumathieu‰PNG  IHDR D¤ŠÆ€PLTEÿÿÿ.27;?E?BG@GOJPYSV[W\edkxehhks}{ˆ‚‹“‡•«°´´¹¼»½½ÄÉÍÍÑÕÐÖÚÕÙÝ×ÝáÜÝÞÝãçãã䀆^dnƒš©cisˆ‘˜Œ’›‘—’•™œ•œ£œœ££© ¡¡ §¯¥¤ª¥­°ª¬¬GMP­³¹®·»%(-´ºÁµµ´hmu¾ÆÉÂÆÉÄÄÅ#ÆÎÓÍÎÌk¼ÃÍÔØmowÕÕÔqx‚suvy{„79?âæé}„éééìììíìîðððôôó÷÷÷ùðúúûýýýþô›­¯S‚†e•™ËÆ Ÿ¦-WW1‚‚„¢·¹i®µ¥ª®JQ`©¬µ…‘“k²ºYdk®«¹ë㉉†ŒNfhSUº·Ãº¾Ãc ¨t©±+.2S}}z0‘’”\[FÑÉ$ÔÓϬªpm’„“’£°®¹áÙV‚~%éèì@?sqaHquîîð½·%N]K†‡u”–wžtX|Z‰˜¾ÁtRNS@æØféIDATx^½’Ó²$A„§mslÛ¶çØöYÚÆ«ï\NwÇîÝn^UD~•?ªlÿYŸÅ›¼Àó…¢PQgs‹Ý`ÅrMVdYÓ”Zžeù¾Ñï‡ò5IÓ´®¢ÈeIJú/ø±+¢()J·+K™A X›¬ú“oE–jeY?Zß9g†„G^–W—®$ß°û-}21·H¤Ø $g2š"$ÛÄÈ2ÂÝç¸|&r˜d9ÖAô-À¤B\ $dB; à½1– ¥’©™1K‰ Ó^CÓvwÄÑŽ¥D¡oÂíŽáH'lÚn7N“ŒÇ{i`Žhl0y€4c;óËNb=h™ÂO\\’ÂIЦ\MWŽ|>80,@;PW®»¨wøÕPD QŒ¢rÍY‡;ð|u@©”@)}ið€a(_‰ÐÛ·ŸõÛËæOßÕƒu¢}|yñ±¸1;Ý8ÒÅ”újëlñ~ýh¤Æ¦Ï˜/N÷vçoϦÏýÃë»5£?{YÝÕÕlöõæöÔG¼sVãF@tî¯ï6ø‡‹ígWçË£é-¢ÇßÇC.è›n>þøÚÐ× 6£†ÂòFüíb ®¨)ÕöeŸ|ùP±ýMã§Û¿ÐoG@O+ÜÍ“GIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/0000755000175000017500000000000012262230550025600 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/29.png0000644000175000017500000000210212233761321026536 0ustar mathieumathieu‰PNG  IHDRà*Ô  IDATx½•MoEÇÏììzwã§I°ÛTy)%BˆŠ~ÎåŒT8 ŽH8qAqª¸pEâ„§òÊ'àô‚T‰´IhšæÝö:kïË “Uê‚@´*#,yW¿ç?¿g<óÂkͧ@¤"ê£ÿ7¦˜[,Y‘oÅæ8ú  ƒÈªE#J¯YËÛJéÃ'†[[¾ƒÉ®bG¯ÙbHž 0Ö`QOyx:Bù Ú 7¯»B_=n­ù3ú3TyºC’ôeeYbŒE{B­"ÖÅ1Q½^Ó ¢EÔgÿ Ÿ$i²]•ô0¦«F`qpÇPÖÈGY^ÐnÖ˜í.¡ÃŽA…ïŠx“è?;Æ©°EOmoÝaw?aœPJÆ%zøž®Ô(ϧ´–ݽC–W” ¢¹«ŽóÝÃÈ)¸QùõA÷ʽõ[lln“•ÕòiMÏR¯·ð}¥žç1è÷HGc(8ØÞ`º]çÂÊ%ž;»ü½{çª+0x˜üÚÁÁÞ•Û·~¡w´6˜‰œÏ("Ž#‚@£ý *æù!a4Åñ0!/r¬±ˆ½ÝßYûm•4³WºÝùkÀûá_+±oZ“C© ¸¤5_0yÊQoÇyŽ;¨êˆÒXk+piJ´Ö”·¢>zg‹úTàvÂ¥1]¥豈K^‹›UÒÌ)H}LQÈG}²lT%¯z‘ ¸·v[ŽY^~žé3sàÃáqtÿþ•$)‚ <ðµvSF!‘›ñ”+æ)܇°àÈù¸ £k1J,qè;Á_vË‹ g_O·776)òœQÚ&ª& A›wéî7ZÕŠJ+Ž_¸wÂP3¾ƒë“Ò ¼Ýž^7Å ]¹8ϸ¿ÃÑþ…—“°¶J˜¸Fï?p¿;ÍæŒS6EÜjÑœ›£Ì5ϳ´´€küêéÙ3I*àÌ\‡…nÕÛ"4=¦j{[ë;ßZ<Îø™Ó t6hvfHÇ•ï(n`e‚|kßÒAóçÎâ¿þô÷4ª7œš1ý£CZNÅâ‹/3åö}- ÉÇû PÝnËyoƒèµI^N‡«x o4g/²xé™sÙï1L±ÕsA5D`oýÖ=Gc,ÍXhLÏƒŠ±VÞû¼ú˪à:^ì¼ò*/\¾\Qˆ›s\%asnå%Z K=:ÑyÑ-ƒøŸ‹ÈöãOÅr îݹÉêÍ ý?ªµfðxÚ#ŒcZ³34Ú'àöäT|ªóâûËËÅ ¥¥G§Ð+Y7ˆaq2‹x:E4¹•ôŒŽ¨d?ÒDÅÓøtÈ,Füí©,^ CŽŸ?Þ8wîÜ-Ñ’_*•ò¯Î>ø¸³D‹½ Ër‰FªhB$I¨’h3 º;LÑlH6møH?$™é§§wÓ4_R´ÈdºÑŸ`m¡AXèD† æà¨,RùHÓÇp•ÐñAW®‰òÛpƒ(‚º²ƒ¤ºúˆD"!0jÕµï4ë¯×«Õ¬NS¯¬“>±ˆ$—ÈèVbB¡  „I Û|pM[D"Ä&B*{óO•jí¦ªÕÖ1ûà÷Hç62 n¤‘Æ^ü@à8 %bHABx6¡ç#ýøQ mÖm"Þ Õ¥‡<ñaÛÉÓ¹¡¯VAœðÜ ‡_øîU§rûùòü°y—˜eÚ»]`4¡ ÑZ#›`8±Q'ê$ØHú$û>GWêÄää½w¾êA ×^ÿFcãÆ[Åûcx“w8Üm#-ÛAÄB€@7AÚOëòªÅªÙ‰58DçÐ(±Äá†Ù3ÿÌ„.¯”~89q“Íf™î¦æFÁ}*¡öT¶ÞÒlðΖX«Rþ1S7X\¬ŒnÛŠíV×ô‘á×ÚM1Ñ»ðîæ¯“Ó!ž‡ˆ‚pyŠíƒW—,Ö:XW‚®!öúÅòî‚mû¶kJ‡ ÿýçµàî—ûuÝÆ×)âî&QÑ #ꚦ¯hm8F–M!Ù>ÏšùI}öÚL<‘;+„zïÙÅÕÚ-s³Ó=óo¥7ã‘G¾Éî?Î’4YS{Éë~Þ¯t’wzh$z©‡ÎAj©/’m/ðøÞ_ÓŽívl“û¾×xå·›b¨sÏ‹ã×÷ûÑLÃ:Hu`=ŒD_Ž}{ªÉ8‰ÁçPÙ6üäIúOŽÍão\o6:'ïßxim­ß&o4êe„õJßÀW_iK¤Ï »Î.-g fï™ç¾G,÷ìH’dß)Òƒ£ݯRXÍ µûlj× gº~ý—¹ƒŸ‰Fc]ì„B~n|e¹0öáå™ú×å3ÿùËçuþáxåÃË´²²8öèÑÄ8-\×o%·ÅGåþÝëÇoýí‚.>™Xg‡HvHÏaz?ö„‘þ1;äÍOˆ0˜¸4IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/26.png0000644000175000017500000000211512233761321026537 0ustar mathieumathieu‰PNG  IHDRà*Ô IDATxÚíTIO[Wå'dSuU©».»è¢›tÓAA­Úe»é"ªTd%AM3‘D4”ÄÔ$`–‚ÃB1 ÆÆSŠÙVìÎ@0äL$’Ÿ½x"™üøéì|Í´âÅì¼7…÷pãç<›À‚¢Ûbœþ® gš/Q'(Ô,(Õ5›ÝqúààཿM¥RÝ ¥jJ¥Ö%Õúe,êtv`hd r…;…vww‘Û)bAe@ó-hœÅà°Ó³‹˜‘É‹ÅìtÀ[Ç ´8'FWΣÐf n?[×WÔ-Á¬ì7äw (–y¬³[DR`¬>Keò§Í 7.·v ··fûòšËUõ…â0Ø|¤5ËÁNÁh ãå:Ó\¾ˆJ¥RõÒ·rµÒIŒ«àp±P=wbZfÀÅ–hi¹‚cc·2™c˜DÛÄ6X—A"UbnÁR?p‡bÈ—ËHmå¡Ô1žƒ¸S¤¿RËÔåRél8söÅe2²µ5—Œâ¦›v» ÃÀápXh  ŸÏ«ÕJïèõz( Øl¶´Óé”ÑžŒâ(«V«²ºc>¤GP«U‡‡‡š¿óÇX_ïïïÓ^MÀ󼀺Ðõ|ªáM½Jý¥å‘ÂÍTÚTIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/2.png0000644000175000017500000000223312233761321026452 0ustar mathieumathieu‰PNG  IHDRà*Ô bIDATxÚí”]L›UǹôÚ˜˜,¹òÎxcf²‡DE³±06>Æ |o@ ´@ߥ­”R h)´/4ÐÑ+_e}ãK*0Zצâ`|m@‹#ìï›F03ãÂÄ cüßœœçœçwþïóœóúý¯¯"™*5‹­ï1ÝUý#@jìAààð¨WR#÷¶“w`¥ÆÐ¦ëÿ¶Ø[[¯,q:Ýým¨•¢Š;:; ^Yùj‡@uMšThÉN44©!I‘”Χ´|5!1™"(Š"FFFƒÁ@ØíâÅ‹ƒ÷‡‡‡§<ÏŒÓéœáÄKAð‘‘™Vv²˜4Œ[ Y­œžg#‘ˆ”Ôt(•MÈa磬¬ \.—Î! Ó‘ØØØ :†Ó'ùommÃj¥Àb± `êíŸÏGII Äb±/nŸ¥ß̽æ‹AXU…––ÜÌÈÄ=Šš÷x½Ã÷ö<þssóèé1ú’´Z-º»»!‡Lf6´:JKKa6›ÑÖÞŽ¼ü¨Õ­H$¾ƒÚÚÚÐÚÚŠ˜ød¬¬ü*|¥Î*6ˆ]T Rßu«†Þ¨¡]A¡h¤¡<ˆDbT‰DP©T k‹"ryjd2DD^õ¹NÏ`"<6R¹bgg7à¨ÞAJ•æ©°ZîÓŽ}îG,°óòA’$rsÙ(*â@ZSƒnƒ2Y-ŒF£o=--õõ ˆˆŠÃ…Èxp‰ 8]® #ø{ÅüÛKâÚ&ÈZ{ÐËQ8ŽàKWÇ›‡ä䤦¦!2ú.†…#0èKœ>s—¯%!(ø>ÿ*qi9à Dp¹Ý6ôá¢]–[.B2§ lb²náÜ×aEh l.9%`ñ«Æ¼…o¢qæ‹óø$0!Wp)™‰F:2ÙE0™Löíííá#s‹þ 6;Î&Þ€–ÔCÝ;€Ú¦ë›ñm7ròA4j"®ƒHR MG¸²FTVI‘R"D|s;ÄR¹RGvD?y²zú•†ÚV7ΉF'P(‘ºŒ¶—,q ì óNÄÖ*a[´cvùgLÒ£‹+õFúú=“Ós+Lã¤]w¶÷÷÷/ú½N÷Ü¿<ÔÜÄøødsF¿õ ©¼?º–`Ÿ‚eü,6®7iÑo¥@ZgѬÃðý±ëÔ¬©Õl9˜µÙ®¼¼º±’wß¶CºebY&´‘蛜ƒö™QÑoE”L©YÛo•´Ó,¥ ŽG.T‡Q®ÑzýN’dÚ!L${À-å»=¯ž~­úÍ­gÞè4Òb,,,¢~läà0ÜnwÀÎî®ÞëÝ_ÖPˆQwbhföd¸mmKhžú~]¡P|z›±9>6.<úÉÐÓKíìì0¶ž?gÐÿ}mßþãú~6þÃⳎ± 8ÜKå'Âéo¼ó×øÚÚÓStçß:)o}}ãÝåÇý767ßðûOéwîE!v6òѾIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/30.png0000644000175000017500000000265412233761321026542 0ustar mathieumathieu‰PNG  IHDRà*Ô sIDATxÚ­•kL“gÇññš¹Äy™u1Ktûàtºšé§es~!2Ý–™eÎËX$Ûb6“ ¦‹7&"‹¶ )„ZZhµÜ[)Ph¡ôÞB镾}{¡Tié…ÿ^LF²á—y’“'yò<¿sž“ÿ9OÒ‹ÚtÀvÆn·Âa·Ñ“^¶M{D‰zûÿÃÈYŸÏ­#=D!-8ž䔞„^§R#á ÍE‚…’ÐÅãñ³ÝI$¯P¾e ,›ý\¯•gLNNd¦+æã®½¢bQ%¢O¥xªØvînÈ¥70é‚ÕPAK=b±hN"F¬ðû&3ÜÙÆn,G#S_Xô5há–Ájµ´ n7Õ'PÇØ£ä¦Û7€}a=tÄÌG `½‹Ná á2†–nñ-H¤RØì.ÚøS¿hYØy1Ó+? NÑQ ¿ƒ¥c?Š\‡ó_nÄ¥¯7à‡ô øåÛ½ìÆÕÌ­P‹?ÄC:Tü·ÁÈ¿JÊ僟8œ®eÿRçpFŒ¨@PŒÛg7¢ ó5t\HÅØµUPn†„ù1’z ô‰Q[™ƒNÖ^˜Ù)`dÀ˜ªÛÄÞ{4ö³Ç­SN˜úí!¢ã­o¡ú§µ˜(Z‰Pír ÜÞÕ`L5ÂC9‰q‹ œÚjäfÊžn@hÆi…BÜÂOúœFI:³¶£*{ÜÌ•ˆ6-Çpå>ŒÊ@’$.ò3úµÜþa Š›QÄÈE]ùipª² Õ-UKDC‹8ðHCøûZÌ×'ÁËIFOs6¦Üf‹‹ë¡T™1Ex!êP ‰'ÅÃNî0«P_W’ô)9~õ ê#èJé÷ôqé7éó(¹‡ É_ ãM´2A­’Ck´aLgÅãAxmè•iÑÑ£¯U¶ð è…Åê€@ @kk+¥G£ÑГ|S퓞†I¸^~ 8¿­AÛµ=õò122 ÅØ8$ýZLLN=˰Œ%€\iÄROí9á÷ûawÐQ x<$ÌT°ö "ÉçäÒµÒãt¿] veAÌ܇G WÑÛ§‚’/Vë,Ьh}4„.É(¨f×률n šÁ €Ë¼€zÑ(ŠK+ z(ÆbÍcã©YwL¢èâåÀdÔÃjwQ嘄¸[‰ÊZ1uÃCú@Ràï“Àª¢°¤ \ @®@†»Uµèéî¢Z¼NîôðÃÏÐÍ>„žòƒ0óNAÒ|BöyT—]Ä­¼lT—œC;ñýˉY¨«d ôÖ ”–”Ušƒ’⛸ßÄ—˃B¡È[Ôy(H(§ýãöp  “¼è¸´Ž’c*fj“䤀¤ÜC©g†›?›ZkVc¤pšòv¢«ñ(Lêj(=vƒÑÄ Û6i4êä¿Éq>NdÄç0Ù¸¬¬mP2w‚¼»þŠUß[†È½$ÌT®€‡µ®š-ðó’!)Y f~ÂOÌ‹ºÄ0?óz<Ðd0µÓQSt#½ç:ˆÎ‚MèÎ¥ÁÊ~íùÛ¡*ÛGý«à]§}€@ÿ.4Þ|B!œM{.<êÌê;àqoS’"§buÞ~hº?E´w3ÄùkPs}/æÔï£üò.hG*‹èŒ>KÙÄf@*•”Rã:õ¹óÜ —g¸ÝÎŒ¹¹¹%ó<>ž†ûù[ÁoúóOùèïúíb}¡ñx4m¬(]g8¦½ÐOä&:·{êÙO%K‚wŽ ¿¿7ˆø$m…zÓÄâ¢JÅb4ªõW&ýW› D¼K0™M¤—m‘0yÆf3ÃétyÑ;å|ûçõ»IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/39.png0000644000175000017500000000230012233761321026537 0ustar mathieumathieu‰PNG  IHDRà*Ô ‡IDATxÚí”[LÛuÇ—øb4Æ=M–½íÁ,c²hâÂ6’-2]Dâ@À2°0”ÛKË­Œ ôO Z.¥…r)ÐBKéh ”K[ÀÒBt° (ŠSšÍA‚ìëLÐ.1™Ñ'ãy;çþŸsr¾çwŽý÷­‚/<ñYfÎI­Îpâ_®¬¬¼äv/ÒË«ªé|‘ä U+„\¡zrà[mã§þ|ÌbÅívöÀd‡snÆ+ʪëQÀb;VVW¹ªÑ›ŽkfIi•ài»| ÕZ:èUé Të0bO$Á‡qÉO¹üº¨9å¹á弆`6Õ€ž-Œ£6Øì3P êÑ£ÒÂ69…!#J¹$fä#,:¡7öºûTÿ%pggçç‚;@Ü& Pª‡9|4ƱÃ1t÷k!”t£S¡ÞlE!»ôÌt(†HQ#Êx"44K¶=KË4V7àÑãǯøÁIG'ûIw"2ãº&) B> %à!TÔ‰‘Ê£”‡¼R Œ;Ð臱´üfœóPëGÑ"ëAi%Œ’ èMc”Ü0<ÒPÌ©Am³Œ$@ÜÑG:…mʉj¡1ôÛt)MNcÁ½ÇÜÚ{T¨ilÃ4)¢Ðði {ù‡­­3GðÜÂ/O$Ec{\ónÈz‰ˆý(ª ÷n˜Äàñ.Á:9CòzÁ¼ËÄT¤æ– µS‰Ìü»MF£‡ãʼI,ñ¦f@$•θˆS‡Ät"âRÀâÔŠª…Æ`ÆÁÝú¢W#i¸t- 1IY‡D'¦á£øddfçannîøýoÖgSù‰I@𵜩À †¼S§ßÄõ´\œ{÷Béi¹† ÷Âqæí`œ½Š Ð^¸‚óÑ7qú­sŠD»›››—ŽàÞ­ŸcótV|˜‚JarË*A£êÎâ€Ædáqâhñ¨”ÉIKDl§Ã"A»ƒ¤¬<ÐÚÉ*CI9×·¶¾ã'¨ws+!•qZÐ0î ûmË<…Ô"6-0ýîµÏ¢ËlÁÀä,’dýHg•‚K6Êlµ!SeF‹M„v{ýÀûûû¯—ï;,3Nô:݈'ÂÖ·´bÊí…vbÆqˆ:ºÁ™vã&³–YÆ.PF+h‚fˆe˜õ.cÂ>µvïÞÊ~ðï¶QL‹ùœ*TŽØ‘]V… é|´MÏ!šßNS+ÒI·%Õ|«MhéU‚©F.OV¿ìV\.—rooïU?8ßá¡’;U¨olþuõû­»Û¦Þ†$fxæI|Ρ0¿èÙõ¬<ØÑ:öã»T¨Šà}°¶;æœßcØ¿D&ƒ ›ÍVEà/úÁåÎEJ¬Tÿb0éþ×?ùÌyÖCæ]bJŸÏ§ÜÞÞ~ùà[›Ë3Iõ©a·Û$v¼ÝéÍá™ÆÑ§P|KÎåCà33‡TŒúÓyíLJéÛ>_̳¹¤Øurçéd#ï9ùïìÆÆÆùØÿö<ö=­@ÓøHIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/7.png0000644000175000017500000000237412233761321026465 0ustar mathieumathieu‰PNG  IHDRà*Ô ÃIDATxÚÝ”[L“gǹߖx1£‰’ìbY²d&»qK¶%nlº ÛÄŒ…!h¨Z]av´" ¥­¥XÛÒ–òõƒžÏ´ý m)…rrPrðPi°$é(X5Sÿ}²l™Óyavå?yó&ÏÅïý¿ÏÿÉ“òbkttlíÇy©œ²ÊÔ+³³ÿèâââ®pW/Ãêp•©4P¨I„»zî¬NÆÒÒÒÏ ¾{÷nŽÉîJln4yšÑÝÓ‹@0‡Ç‡’Š“8ÁŽNM%¨‹ÑKÔ½{÷¨ÙÙYjzz†šŸŸí™àhl’i¶»—å#\-­°»[_£Æër/ åX§nÁS/ÞÌ/Æ&‰<›ïjü`™Üðx<©Ï„­ŽJÒ_[ú#ƒèé‹€%#‘¦õa{éi|db3³ ï0J&7#]fÂvc„«“““OÂ^5š-ëâ‰éº*±lÅNµ¢½§¾P7 /Øb%ŠÌ~ä jÁ$øzïAT+HTëݨŒãˆ”€²®¾VQ߸qaqñ•Çà}ý1RoX^—/£³Í´sÂÔ„cU5(`qQçá{¾š–NœI@-ÐÍð_Fvþ” $()¢·/¢ß° >þB._,½£ÒÚ`uàö·CG÷qhô¼ÁN°Ž µ —?6ç8:~Œ ;2HQ ê¤]‘!sËálnCþajdJ\Ÿ¿¹mÎ*)—Ê $j="C£„{ µy 1:À®¡–ÐAZ«¡!ÁaµÙ@’$GØ8TÌ…ÅjGVN>ŠJ«°gÿaðE§0•˜þî vH¹<dõzx[Ãô#Záò‘SX„Ý…ÅpR~Ø›LKG! ܵ—‰=ŒûÙp;êhæš¿uM/¥²]cøê`)Tujœ»p‘þ®Þ|PÕŒj©áØM|RaC0؆Žþˆe*twwã⥠:ðx(o }é‰QLÞ_ª%[ÎÐ=B Q¢F^—ÛÂDÆÎ ÁÞ]ËÉŸo£Ðz¤Éޏ¨fpŽ•Áîp" ¥>~¸²ádß홣Ê&˜mìã±#+j­ §< uFX}íøNjZ=co&P«Ö€Í—BxZŠ¢’ñøåñ©©øúÇà=?ý.ÝÚ8³ÞàxLÙ®.Œ-Gu(;Q²¸^­Nz‹ÅÕh?3€uTÐ- ‡©”§I5þPú%O‘¸æ·7npçææî\»¹ðà÷ÊÊ¶Ý ŒF:µp:àñù´¶bh6‰Í .ÿ¯o=žL&¥¿Æ?ëm¡Ðø#§ ¥"Q5Œ&ôBííH$£ôy¨×ëAoÄ®”ÿÒÊÊÊ{ËËË»ÿ]§×ç.ú0b±ØÙG®•*$§¥0™-ˆÅ&ònݺ•Kƒô.YŸò¼¢_;4<<ÒärÅâñøˆÍîH½zuîå”VqºeCWÒNaIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/22.png0000644000175000017500000000164112233761321026536 0ustar mathieumathieu‰PNG  IHDRà*Ô hIDATxí”ÛNW†sÙGè]ú ½à¢Wó}ªR”FU ´Jc»¦Ʊcãƒñ™ñyˆíÁõŒÛ ±ã¢4˜xjC)X$¢RAj8€Ý¿kFâ ¢,é×Ò^{ïo­½ö̾ñÚG;::úDQ&N3Ìúúºª/vww?][[cšÍæç+++Ÿ©óÝn—ÙÞÞf:ŽækÕÚ¥Þ¼~3p ¾¿·g’$Èd2ªþ%à¼Çb¯xž_VçEQ„,ËÚ:u…P”‹jœ¼¬\ƒ¯®®*‘HÑhN§ápXÛ̲,  &“I‹ƒAÄb1x½^èt:x<FFP,ÁNMÁbyx^(”L:ƒÛ·oall 7‹R©„¡¡ATŸVa³Ù´¤z½©T >ŸÉdR…Q’ûH$˜G»Ý¾oµZ Çq(ÐhAˆŽšËå`µZ!‰’V¡ƒàöGð)^;A£Ñ€ËåÀäÄ66àf9d³Ù«ð^¯wóÅïÏw,Yü>Úœ‚ÛíÖT*¨I©R’¬I!›E„bù|~ß Œ#z:E·¾þ õgµÿúý›—ðóóss" dñ µD^´Öj5ªÎ¥‰.ÓV …qjUœHĵ=•'KpM[±T.¡ßë™ßÃÏÎÌËK%$©oõz÷¼GàI ~‡p(ƒá'<øÙ—ÃFɪ0³“˜¶=ÂÝoïÀåt€e§¨âgZÒ=ÎNOßÃ/..Ì;[-p^;tÃw´aÆlDÐ6 ï;ï·wÃðý7ÛMˆ8Ç¢u>Ë(FuÃ0Þ„¥ü¸Ö–Me‰Ça‹i?Êü ç¼(¥<¢ˆÑi’RÜ 9åE‘÷¡4ç'€ü8Œb†C)—¦Ҹ § ÚïvN«‹"Ê´HLÌ@Jú‹8Áû-ˆ¹§.Åû̘çìZ²…¸ ’wBàÈDKÊ$!’—MiŠÜã8ä_3¨­,áõþÞßÔ‰/¯ÀûýþÀéÉ sxxȼ¢·ã/z36Û-†~ ¦ý‡¢ù­­MæO’o6_2Í—šÚ­CÏstøC_ÊÀÓ>Úÿ÷GýuWjŒ^IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/1.png0000644000175000017500000000222412233761321026451 0ustar mathieumathieu‰PNG  IHDRà*Ô [IDATHÇì”ÝOÚWÇûwìf^ínÙÍÒ%ÍÒ,íÌLº¹ÍÖ«]‘ÎW¨¯ /j«þP‹¼MA*”7d•Ö¢¢Ô¨0ñ¥hm¶¹ºÍꢂ«±ß‘èÒ¤½X²‹]ì$'OΓœÏyòy~ÏïÌ™ÿ×vµÈ”z&‹owºéÿ j:yÄ;—·«ãf«>ÿL–ï@‰åñŽNm}$²þþ?†úüþ;¶þ~ª±©y«FHá¥:½½4:IJv•VBØÐ¼•_È F½^ÊçóQ^*^¡^¼8zçx||üV, F"‘`#E½$”H„ò *9\°ØVWU‡…E`—@«Ó˯†HÔ¡P˜¸Ó×gÁööó”S8y)igg>Ÿ\.b±îÁArI„úúzÈårp*9𠣩© ¥e剨P(P[+€D"AwwÊÊ+ˆ>ÿR,÷~pKZ\\‚ÓåJ-  •+HÕô‘sCC<Ìæ^TW×À`0&-)-'9s✓ÇÀææÏ’W<ëÍ–>ñk±Ùa0š`4I•#ÐhºP©T ©L½^±±±„µúT*²nä@Gô””U “ÎD»ºëpooÿâ‰ï­Þôkk[' ¦^R±qþ„_U ‹Õ @¥R Ò4íÀ§<~n£S£Áµ¯èHËÎCÕ‚H4šrûŽH¼¡PkÑÑÕzn®fÝÀ¥/® -“Ú×àHƒ æ­bdÓn"=3É)—pöÜydÝd %5 §¦#·„‡Æ¢ëë7ôIxEÅk–‚!$__:«R3üÙUd0Yà“<÷v#*ER³kðy ç>ù&ŠË×ó‘Î`#§ ¬*Ün÷Êîîî{§ð±Åp’&´‚åè³ïƒÃPëz Õô óž¥\>¨o¸,SC¦hƒÉvuª.ˆ¥m`Ö·"¯»dØ´¶~;íÙ³­³¯44´µ}A61ƒZy[Ô5³ð’-S"¼² ÇRô-Â+˜ú#fIŒ’ØjwaàáPl6°°ÉvyÑ~ÿÁîááá•×NåãõŸž˜`zz¶»|ÈwTÔÒŠµè\ÓŒOÏ`<´Š\]/†ûaõq­Û‚ÑÉ©Mÿ\ÈmòxæC¡ë¯omï2«&Ct^ Æg`õ»a¶Ùàž[@¾Î‚‡žQ´ M‚F4æC´ºÆÀÖö`u-Š»®Q4›,ñ7þKUI¡Õ‰ºj=‹ÛÉ´ÚŸïü¾Ú8@ñ]–—Ãèœ Â:âÅÆÆÆÅ½ý}{<~øÔ>ìGŽ¡£Áù7ÃC¿ìHeËž `²‡&_Ç“—¯\süÔÿ[÷îwá4¨Pè÷ïß2èâ¯^½–Ƽ.}oÞ¼•½ÿPÇ𪽅m![[,'IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/12.png0000644000175000017500000000230512233761321026533 0ustar mathieumathieu‰PNG  IHDRà*Ô ŒIDATxÚí”[LÓwÇMö²lYæ£Ù㛋·³%3^HtCcD72Q˜å²Ru •RÚqk)m¹Z ´ m¡…Ò+Ð ”Ë¿”B)lZ/ ‡‚2'$ ¿ûÁƒ[M–¸lOËÎÛù_>çœï¹lûï_T¾óJÚ]£i翼wÿÁþ©½ˆ/¤ßª®{&(¯†J­}¶é;œ®ÝÿníwVTHähhV¡×î„Ç;‹­…ÂJ0Ù<êvðnÉ߆võX·L¶†¼’Šç²Ö´u iVCÕÙƒv½Ž”×4àó¯Ïy¢ÊÕŠšºË¯ /V*TnAÍ} ¸‡¡Ö¡"¾s`ÝfÀHLÍBäùDDœ9·®jS_øKàêêêkÞqߎúFÙÎà/UAoê‡ÑæDk‡U -hÖtßì!’RoBÑ®'AMØL¤ª¶~yjú{»P°ã—§Oß ;‡viõÔHe¸UÛ…ºk Ú¢5€[.A|r˜yBd|'@+z£Ó3?`Ä3©¹ yü2°8<­ý‚¸ÑÒ[•Ë-EY:c/$Švt›ûàö@P݈ ô44(5¤òÌ=ßÄ$(¯²V-ÊÅ2 {|Pw™ðu* ™ì‚™Gï}ÏÈæD¤IµM*Œù&¶J–’&æ“É Ùv‘LÇÆ}˜ LÃ18qS2ó…ˆNøÉL¤ 5RIE_Ò® =3EKÉ×oBÜØŠ"G÷SX8{ ^\C£è±ô¡ÛdE“ªŒk¹8EÃÑSшa¤ƒNzp>!çâ.!í:^¯÷ø½?Ž&—Š“€C§ÎâàÙhìÛ°ð“Ø½ç}œ¾šŸFDR ÂODâÃO#±÷£CØwä3ì8ƒ°ÃÇq0:{>8€êêšµŸæç¾€—b3z8ϯºÌÂbÄ‘)8Ãæ‚Æâà¢D‰Ø‹4Ë[EKD¬R‡#‘Q }{IéL0jø‚S vAÉ Ù옆æ˜D’R®rQ°ôÙÁ±"%']ý.XȬ«ˆÖJ›Z÷(’äZ¤ç „Hhs8‘Öi#7>Ÿ/ÞØØx×2¤ì#T?âÈtTJê1ì ‹,M–Ù…¥ ÜáIij²aƒ‹ƒÐì­¢R¹£²lC³wîß ?\y*`Ù)dqùà÷ºq­®Þ‚«¼RȆ½8/ƒW+EŠ¢lAruVHÚµÈì°€)¬[Ûƒ©G³¾¾þv¼t4 `4w¢R\÷ÛÝG «ƒ“S`Hbå@Ô;ˆdžÞIÿÚTðþªòmÄ);ÉmÃïÁš_ÏtO É‚Ãáäøë!ðV_ Õè~5™ÌôMÿöÏ+6ÞŒn‹u˜feeE³¼¼üææ;™gjP ÖÁívSKKKÛåÞé"« jæá“'Ƕ€/iþ1‰ý§;óÎââ"c^þ–; é³³³[÷œü·onnnÓ?¶í{û(=z¿á}9IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/6.png0000644000175000017500000000225512233761321026462 0ustar mathieumathieu‰PNG  IHDRà*Ô tIDATxÚí”ëO›uÇy§/5™Ùâ÷˜ßlFsSʹ‹#rÝÓn°‚ËÆec\‹”2(×¶@=@KéJKiK®”K×µ\ e]W TJ r‘ìëI–%ºE_Oròüž“'Ÿsžs¾çòß¶*.ÿ´ŒÌƒTKëA§ÓùÊ¿}ävŸ£b»ªÆZÅ­… M† N]‘clìÓ6Y†cê(ÑjƒP•Ö›Ý~˸ 0Xì¹¾~“Âçó½öÒ`µÖTYKýÆ»'‚¤C ªM ±² Rrîé€@ÒŽ˜o¯#·€µ)K©ì<Æ‹'a²9 )4ú> Y¡1ôC(S¡ßlA¯É‚âªzÐÓrEœ8‰Ìõ—@Ÿoq_]=u€À89…¥Oezt÷šÑÞeD½@N\CŸœúÄÓo£’/@‡¶‡<[žSôô¾ÙÂIIÍ:àñü°ï9¸ÞØ7ÅåS(ãÔ[!ª W낤4Rn"¯˜ƒÄÔ\4µJáœrabr ]=&ˆÛµÈ+,EZv!TÝÂúúú¡=ðÈ[l~qåZuc+¤*-Úäh•«1l³ãžH‰¸«7q·’]ïý`ÏG'œÄ'ÑÙmDY …Ó@ð¯2¥ˆ»|cãÎéíííw‚ð”ôlöîGåµÍ°ÚP¨õh*PÊ¥pãNšD ·«}8:Ž&‰ 6ñ)·‚‰ù-Rd3+‚çГgQ[W‡ÙÙÙ𠼫[ǾSP¢(5zV𑔚‡ˆKt\¹™ ñ>ô¤êN"Iéó,&ÎÆ^ÁÑ“‘øêâ5$¥3ðu|2â“Òpüt¸<fffþ€¯®®½5lsL$³Ê‘@ú~*û‡Ž„ãýèxœÿ&g"bp:"_^¦#ì ‡? Å{GÂp8ކ Ëq4ì œ<{±q P*7åO‚pÿÖö»Þ•Õkµ ˈÒÁ,)%ºnG£LŽÏLÃ,W$A£XŠKƒ„–ñÈ™(àÔ!•ÇǹšF|—ÿ=Ä- CY®Ø½Ò–·ÙÕóXGÇÀonxpþ_ %}VmWñ‰®=‹È·<€qx5‰}Q®9HTj¢}]O@“uÂn·W<#Û®Ù«kÐ$WÀ¾°ˆÑy fd–°1å_„wµƒVÐYwát¹0XufIͨ¶Â´à¯]ƒ4& äbS?'ºâŠÄ›¤ún,yƧ¹.WaphH³û®[[§_t¸7ʸÝîC^Æô0ñ½©ÏÏÏï'm¡y½ÞýÆü~ìÒÒlã›!ÿÛ‹Úï«ÌA(šð} IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/3.png0000644000175000017500000000217712233761321026462 0ustar mathieumathieu‰PNG  IHDRà*Ô FIDATxÕ”ÝoSeÇ¿çå´§[»®ÝÎÎh»¹uX^˜aCa Ñ ˜˜hÁ ½4\úxgb•xaŒÞ za¾ É$&€$¬llÝÖ®=}9íy?mOOO}zá…B™‰7úMžÆßBã 9qüÄ'Š¢‚áX4½ò…¤rÅB™œ*˶±žÛD½^G»Ý¾ùpoøÚúz2·Y€¢jPI‡™µ5D‚p\Ù|·o/%Kp Ãà±ôÒBº9wò­·9¢F–i£á8XZ^MQ°‰UÓA‚\©u;ÇcéÕù׿=‰ŠŒ(ŽÂ²l”+UTÊUØäs.åKД(ƹVÅå+ßÇMÓøGð›¿ÍcH è£GP4…ññx÷Ò€¡i„‚}è‡H?ïž›»þü–ð«×®ù2™nùÁ}Ø:<¯];¶£Õr°¾‘ÃZ6†e!Œðó<#ÈJÌ/þ~žü·¿'œ¸îwœÖžçŽu]›ºË0pÿÁÒéE2)Yض6)è¶Z` #â}}øñ§«3›…âñ¿ý‰”eY¼£(Êå2|~?úûƒÐÔ¤Bžtê‡AбÝñ$§ê^â 4Ë‚"û|zñ…Ý;ž= `屩ÊlläÎ]ýyî£_5$ÂðG¢*U´¼á¤ X£§giD¢}ª¼²crÒœ=¢Çb±7Èx–þÒ9ù¢mš¶¾wß Ø¢„©ƒ/Aò:ˆõñ0*«"Ÿ!1R§%¡©)ÌîAÖ²ÀÕí›ÛÇŸÚ³g:ÓÓ9ñ<šY˽÷kUEbxvHë&Ꚍá‹05 w#˜šh" ’jc^#¿[æÜŸà^p2‚i~1›Oå«2âWsZà+yèòW~ÀwW^D‹>Š…•†È”T·©Í:xË: Âõù0`bbüŒªß}Uw®¿2µû\»1†ý^G›ÅÌ~µ>ýÜž³R Ý/‹¢xiKøØø¶Í nLRT-ÇÙ° Í·wÚ:’/Ìú…áã…drúå&ÅZ¡xÒK¥RYüÛ¨ªòÁêÊòyY–÷á¿–?Ñ´ýxB?÷IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/18.png0000644000175000017500000000226212233761321026543 0ustar mathieumathieu‰PNG  IHDRà*Ô yIDATxÚí”ëOÚWÇ}·½Ü’.möfý–,{1›,éÚt­6ëtÚu3÷Ñ‹wÛÕ[]«“y¿aÕ""VAAŠˆ(‚¢‚ˆ "¨ XŠsCE£nq^fúÝ‘e&M“­ÍöjÙ“œäüNN>Ïó{¾Ï÷øý·ƒ^Ïz+-›z’ÝÚvÒf³½ö¯@Ÿ8WØ\A­–i¬f<—ßj:³Ä25uþ5:C$‹ÍÛlæ !‘÷Ãd¶@­£‰‹üRÚâZÓév»ßxe°LÞŸTËlþÑÌG{·ìÇbºz!${•z­1"ãÒWPºËÙ¹Ôü—ORB£ï4q…)‡0¢7¢·_ ^GÔZ5:”×°’EEøÍ;¸z÷óòÙ t»WŽ19'tz#ý»ÂŠg= ô j!îUÕ*D#YýCZÐIÉF ‹‹n¹ 5 -¸›WòlX«£ßʸÂéüáØ påÀÐìCUôFßï󄈤 á!)3·¾-µ¼ i¹à´ a›ƒÕ6 Y¿š´LjQ2s !‘)–···ýÀc㦨¼’ê­ÚFžÌõ M$…ÁdA3_Œè„ _+”ƒZRý0&§­˜´Î §oUõl¨4:¢…Ùù•ˆ¾ž@’Úæö÷÷ßóÁogåҪɥÌŒ X¦D#O„Ê:6î䔀Ãï„a|3³vLX¬hi— €Æ%5Qñé¾¶Ý+¬B Ù_ º fC.úà½} ZNAj™ltJ•(~ÀBba_§">=ŠáÊI¥*HHŸÓHÂÏ£’p.8_Ä ë{\¥¤‚’”‰àÐ+¨c00??ÿ|ssëøŚRLC4µŸ„„áÌ… |p&FPðåõD„†E’k©Œ¹ ÿÓpê£øGÞÀé²:œ Bðå0DEÇ S,Þõz×?öÁ={ûï»66“™Ëë—¢¤¢qš:D8?4ŽÈ¢2Ôñh«3# ŠA,F½iŒ„0šp;¿mÒ^(•ýÝÄ\QG‚Æ­ïÓ.yaœœ‹Ó Áèîz~Ì8.–Œ™ëùŒš 2PÏf£ÝR}iiéøââbiÍñ?Ï<OÔÚÚZqãÛ~ÿÇËÆï ²@ñÿaCWIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/46.png0000644000175000017500000000266112233761321026547 0ustar mathieumathieu‰PNG  IHDRà*Ô xIDATxÚ•[L›eÇM¼011&&Þx3¯½1ze¼2YŒ»0F/MÌî̈š¸Eò¸%sǶƒQÎ-¬':Ö¥ÐB[zþJÏ´¥g …Bé(+пO?Ôdd›kòô;¼ïû{ÿÏéýÞxÕ8~ õƒs¨?Óâ¸í¢~˜n\Y£wde P;G7Ÿ¼Šuü5-ìÇqØ V¼(ç”s¦“+ÙѾƢ´a$"Bk>ðÔkëµuT ËØÞ4b#iÄúÚÒ¿FÏdÓ:wͨ•4}¨ïo‘KŸ¾N3«‡Õö² ’kFÖBÁ¬4¬|*DÃZÖV<³ˆ…fQÉYiY’Ýà¥ÐÀR|\ΙY…‘•9ÌÏÉ`ÒK`5J¡×°l“Á½< '#gÍç˜øgƒMƒó"𔤥rÞƒxT‡e» K‹28 ö+„ÃqL*äPLpñX܇Ǣ8lrx]ÓpÚxä8Ü_m$ùˆþ¾< oÂQÛ °™&`µZ‰&‘Íía¯XÂN&‹T ¹üán < oÄðûT4_ŠÕòÛJð6P¯ž{Nª›Žªa,[§À06öN þ@KFuV$ÖR°X]èêìF'ç.¸]ÐjÄäá#LËz LQÅA¬ïOÁ÷š KÚY‚VËï!߄̈́fÁ†µõ4©ÏA®PC2þzƒ‰}0h…˜€NÍÇñA|üΊïçó9fÙ:x|Ô®‘…a²ø°¨µcF©…â bÉVü16\© œ.†ûïB8Ú¥‚Z£lTÍ üY­vÆíöù¼¾UƒaøüQ¨5 <ÞÌø|1)¢px¡Ñ,!¡ú߯"KžyW"ØÜÚ¡òp»½îmE­² ŠÍ <qÜž ¹é E!RÉì"U;0šÝž`Ùá¡”(\e6±¡H£B¡ÁP‚Mü¼Úîƒ6ì¦ÝŽcáf³‰³•ÞÃDz{—&¯“J?ÅÙLŠ•ô¼†R¹Âª-–ʰ1H¥3èÂÈÅZ¥‡P¤ \hÀêÁÎv@í¤ZŠ¥Êy‡seB‹Å†Y¥¼‘1Üoç çA/ |¾86Sè㢫£#ÃBzžH †ìÉDc½(Sbÿø¿„&“›ß FžaÐûð!þøý'üzáüöóy´\¹N{+:ï·£íÖmº¿…›×.âê勸w§•ì6¸]7ñˆ×ÔFøÅº¨µ6éõF<™x ŸƒÖÑÒü#®5_@ÛŸ×qýò/BÇ] µQ…p ¢ Ñ-ÎS˜¨éŒJ”Tç9°Ãå×`bd*• ©å cRÆÃ`÷UtüÕŒ{m-¤ú¸Ýíàpá¢v×iŠÇø1!ǸXˆD"ÙÌOÁÏÌ« U>,‹!Éɤ깕šQ+·‡ƒÎ»’;-裘tbøÜJH\Œò(Ôò…‚ë¥ÇíŒR-›œœÍ(•*Y.—KtÖëG c™Öõ³ØL¹±“a¿”B6»IÇA2´•ÎLšÌvdv³M§y§=øÊï÷“Hn}«Ó[w¹ŠÍ×k6¶J¥|iF©A8ƒÝî„Ñhk¥î~“ê¿i¿Zýè¿D©­Ï,{a”/Äðà[z¥rYÞ‹'Öåv» ss  Tóö~ƒaéí×þ~ºÜÞ/T*Z,Åü¼žÚ_‚h,inŒ©ÕZ³B1X,†¡Á~HÇ¥®;^N!yÏdqJ¤bø¼Q<}ªD8=Ûóx“#ÂÛZ¬O4ax|a‚„Éã‘$Î3t&ùC…E&x̰eÜM´øƒE;IˆE¬´<ÇÐY#ƒÃ 6:Óm⢠½èïQ¡è|Mîo¹Ô¨‘`Ÿ8yÿà^!êÜa(ÊDxJˆïø”ÈbŒÝ3Õ).ÃPœñ‰aL",Pfže²Œ3…kˆËhÁ«“'Ê £làñ›÷|›6IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/40.png0000644000175000017500000000225312233761321026536 0ustar mathieumathieu‰PNG  IHDRà*Ô rIDATHÇì“ÝO“wǽޕÂþ€%»X¢Yf² ej 0 A‚/)JY6…Ho¥-Чô)åi)}/}oim¡/´”RŠ¥´kAa,f‰ L–Œ™.úÝ#$f.1f—;Éïîw>ßs¾çœC‡þäâÒ v'ÕÒÎa=Y[¯øO ÛÛ;‚P$ê ¥Š§Z£‹ƒ5§Ô™»»»yýcoïp&»ªî½–iLpû‚ˆÅçq/‘‚/4 .A¡‹Gä&§cËéôâW´Ðá÷†ÇIõ€\©Ú›kVú)Fì0Ža<0‰@(‚nB‚‚shdw@"Sªß ü¦ ’~©2:Ï ‘\@t6 †£˜K¦ ¤T¨mêÂŽ×QTvùõD0,Éår½ú|{»Xk´0h@R8¨ÄˆÝO Ù¡T‹îþ!¨MNˆ†t`ÖÞWHaz6‰©Te mNUWˆAÛzä-¸Îh͈å:HäZºýq Ó nÿôÛ¨ú¾|± m½R }ÿ²++ˆÄæ0:Úÿ7@ç6´r!¡¤ÄØ søýÒW¤\‡Û»¾0tV7=Ä$´f'~`sÑÖ#Fl.……ûKûàpôÆa´ñEè“(0ŸJC9bÃÅ«õèî#_nmm߇ÿÈî$JA¥sóiz€^¼êP´·Ð[]H¥—°œy„3°¸|è 7¦¢æ6 ˘¸Õʳ®Œkõhç ðxuõÔ>|åñ§•#xÕÑKB¦µ ®²ª® g/]Cqy%„2õ¾€Le€ÞîÆO<J+®#¯ '¾½€óßÝãF.UÕ¢œÁ‚PDb}míÔ5ÏžïPí¦Q»ÂÂ7g Qpù>9òN—”£ˆGâhÞIœcÖ ÿÖû:E¥çñÙÉB|þe>Î^¹Ó|\¨¬B ›™Ùx–ê§ðáTöã®pg˜,¨Ìvôk Ó@z&P"Ó‚/Â5E1€!¹‹½ƒÄbjŒnTSrØ£ª`0ÄØÜÜz{[~ùí÷˜-„ÁdFgxU™ì éeÔóbqôø§Š'àŸ_Ëæ…mÌ÷$_P°UzXÎ{{{%ÿØñÍÝãœù‡›õ‰X2 ¦u µÍl„‹ày§šŠ@J –RJxC“¢(î&ž‰ÃœX‚Æü‹öøâ;Èúhƒ¨΢òj5V×7r2£®»3 (ã 1æ  e<fÇhƒ{*Š~ÚšñéXv?„&ëŸÿzòÎìQßK€’J×i¿ŽÒgl~úë3×~q³±ë?o$b³ñœÇãɬü½[· ¿ÿ¾þË—/ë×ì>ò#|‡ŽÇmø×¯ßú¯^»öfóæ-vÈâgΜ9ðàÁc@/«|ùú5Xî˜ Ëßðàù®Ý»ÿ?~ü¸ §áÿþúýû· F\¼z-Ä"¸ô½yóFöÁƒ‡ @5 à Üh1…“œ˜IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/37.png0000644000175000017500000000207612233761321026547 0ustar mathieumathieu‰PNG  IHDRà*Ô IDATxÚÝ”[LvÆ}Z¶ÄE’-™©‰!qA722f X¶& V@aL®· Ë¥S)Ó…¶€€Cg¹*P,ЖRU*m¹XÀÒRÚÒ -ŒtÌ”Id„|ûw*Ì=í$çíäw.ß9gßÿ×^¼XÚo³?¦(‡)#cãÅÐȶ=£Œª5£ÉDYYY¡lmmyí <©›:£™2Þ1Zl}¤ZgÀØÄ$Æ5:hôÓÛ®3aµÙ13c›2›-™ o¿L‚(‡]ƒchVÌoC6 €ky¹É#˜´yP(·©Ô“ЙlЛ혶=!Ч>­ÁŒ>™ßfП˜‚”oRÁæp V«±¾¾Þá.—+¨müNˆîI1®ÕÃDÀzó¶,vÈ”Áëì·¶ …’@'6˜‡ƒI ;à^V^y­º‚î>ôöËI¥&H¤J ÿ3"2Š~å0*ªo¡§§×º¶¶öÑæææñ] ùH­Y§3˜htCÜ{­H~•ƒ/ê·é.ªi@Úwyèu{^¿òŠÊõô,šxÔ5óq{<wø]¸Ñxô Å M›ܽÁíöǼ¨˜x0˜ÅàÖ‹K¯!¿ˆ…+ìTÔÔãÂåR$g|˜ø DFÅØGT‡v g—U‰ ~ä€Qp…$(³„vÕ-TÝlB}s;˜Åœ=—ŽÄÔl$¤d¢ø*‹µkxì×ÉâØ„tR]âS²PßÒŽŸk›q±…¢Ÿ*QºŽ,F!Mâ’2‘œFwè ÓC¯·´òŽœ:1F‹Ý®î\Êy°«¹H£çƒ$Dn~ W!3§Ù‹Hl$¥ç€ž{é¯öaàŽ`²RïðÚÚGƒ‚Cás܈€ ‡„Ã×/ÔD•ˆ¸ÄT„Ñ∠ñû2¡_DãDàgÈa\ï'»úiïYÖùl|z"úúá$• -ÔàÏásÌÞÞ^8zô0N…„"èd0""h@Tôt‰»_’ëLÜ1Áüü¼¿J¥²‰D"´´¶¢³Sðg]]=«ŒsÙ̺úÊKßÂ…q/…B¡D*•’ ­«‘Hî)I\›V«emllø{œ; ðq¹\Tò¸¨‹‹Èå÷Ã{ÄaÏuãû1­}Còô%ãåv»©«««oW{ˆøÁ=“Ó¹©×UÂn<€†Z†d‡16»´k€iZuý¢Uÿ>ô½‹I­Z5“þëÃÇU¹¬Ùé#èëöG¿´Ááv¯Š——/t:çC^þü76kJ“¹¼ËD„öÝ÷_Ë{Ön=ít:ý[Æßý4µOáfÃQIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/27.png0000644000175000017500000000233112233761321026540 0ustar mathieumathieu‰PNG  IHDRà*Ô  IDATxÚÍ•ËsZu†]¸pÛ­.̿Э[ÿW.œŽ 7:v¥£cÇ©VÒ¦Q[Û¦M¤MÈ…$„×p „ûåÀp;\’!Àã,œIkG;nzf¾9pçùÞïý^æ¼óVп%J58ÿ_Ð{ô»C¢ôýî±ÔëìKÝÎA¯ÛÙ§'Îý‹C‰~GÔÅuè_{Cx÷v¿{Dû(ÇAÕG­`£œ³RÎZ©ŠÏ»^Ž›½ó&¢Á ôßÿ¯ªoÔÔT…r|ƒ´ddG2¡ˆï弃\ÂH)ã }\40ý;¸ßýt®)v”Œ|ÚBV6 ðrdYMÌ3O¯Cò-Ùš%é×rÔH]Ók'^ëwöWŠ )+9ÙB.e¡(šdÜkŸÇï^Ƕ6Éòø·ø,¢ÉÑ,¾¥á⬂÷Ùë|Ö<ÎË&RÑuÒq#aÿမ ßABNãöI-NÔ#_cѪˆ‹ b>®õ1 I«`Ÿ)ÿ¨¾ß=•ËË&â=¾­5Ré4‡­ǧ§„¥,sºMÖÍ~tK˘ôO‰z´„ݳ¸×ã\¦Ý* z>ˆ›H…P½Â¶}ŽmŸŸân|±J šaÅä'MS­7‰&Rh§Ç°¯=ÃežºÜÅšú;êÅ0ôή¡ÿáE»™Ë , ¯à²L³lXÃL¢[ñ2»è`Õ´E<9°&Áª9ȼÞÁ‚ÞL(¾ƒÑdF§¾’rÝí—áªóÓºPð'öI6Væ°lz˜™·ðÇØ<«ëv¡V›±q-?£Ö˜I¤Š* ¼¡ ‹zqýÞ…ôŠòãV5çõ¸‰Ä“lºÃLÏ›0™ø‚1Š¥ õzJµŠÇã—{Ϙš^ _P„M |_vãpy9??» ?99¹¾“É•ZÇ'ì·Ž †ã˜m.Šå2µ½:QYÁéMà $)Uª¢ñ&wG5ÜQ=`R3O*£0¿ìB¿ê`ÿàð*¼Õj©’©åjûVœš%¡ªHU€ å=|Q“=B®P"-29kð±-|wòÛÃI&ÔZ¶üi"‰,r*õü¨õ¥F3Óþêæ7Üøü ,V‰t)UÀ̰a‹˜_dtï Ž—”wkÄðþè?™àû~Âår]…_t:»ÜîÚâ’«ÝCBLaq†Eƒ‚HŒÌ£g´K¶2n¯ÄnuF³)¦P3bÂÚ)ËáßñûýWáGGGª@0(|áðDÉ)eB± ÙB³="¢¸y©°Þ¨_î “/ã4Z{ˆdZaÕàÖ#Æ«ðv»­J&eätžl y§xéýœÎ)"g"›/±Woˆ;(Õ.³?úp‘_µâ7.&ç¬âš‡Û?ßÇnw^…÷z½šÍf%)§.³<3·Èã§“ Œ‹F™™Õ¢Ó-¡×ëX7šÄ'Ľ T"’©Eö§x>5‹úù ¢ÑØWþþNçY–‡Æ“Ýݪ¤(Š”ÞÉJɤ$UÊÙÃJ)Ën9ƒRH÷RL G¢’Óé–‰¤TÛÛ Ý½72d0†B¡À»oúÚûD”êïwèÛpü´ª¯ÇÙð)IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/14.png0000644000175000017500000000201312233761321026531 0ustar mathieumathieu‰PNG  IHDRà*Ô ÒIDATxÚÝ”IOgÇé¹­ÔC#U=$T=p©Ô¯Ðc>@½PåÒŠC>JUE¨ Á N@&ˆ·ØÆ†Š=Œ×/xÏØ¼Ûãµ6«APþ}†CQ•F*mNy¤‘F¯ž÷÷üŸíz·­R©Üðz½Ã6›m¸ÕjÝ|+Ðýýý;™Lf¬T*…R©¶·ƒH¥¸c»Ý>vzz:òŸÁ½Þïs¼ˆF£n· RH4 Ö ·Ûév;¿\L°{ù|þ¬V¯£Ùj#WÀ eì$vQ®HØd"˜ž1ãÑcÕE0$“É{ÿN¥Ô% ¤ U©ƒp¢‚M6ŸG£Ù†‰áÙ¢ z“?O.B¥š?£¾Œ¾Øï÷?ŸH’¤L$SÅJò—%¢%¸v‹u„c" Ë„£Yä‹B;—  f÷É¢d_~ø7x©Tæ“Ii^@v·„íXQ®ÖÏaÉÀÀhõõ¥a]ó#LÀv»v§ƒJ­…j­@ Û&KYÌçùÉ¿À…Bá›hœÛ Æ2à²e„b¼Û)Ô¤ÂäéÜK8Ù”« Å*;îBÈ•à p¨Õ›È—õrøñ'&&&®àn·{2“+€ñ$.b¡Ž_Äv$‹åµWEx4Ð!¥28)±îcQç€ú¹þ`붌˾Køøøø<›ÍNÆã ¤…< å‚QëöÔ4zJt&5šh6›¨7ÚØtÅ1óì%>2Agd±Áì`ùW/•åîßÿf³ù N ¸E‹’p8œÇZS %ææ5PŽRàOß§æŽRŠß±,{›.=  kÔ è´Z¬®®b}ý7Т€ž‡5ŸÏ÷@„-—Ë *•eè:F5~Rþ–a¹™— WVV «¥ó»²O«Õ¾)Š»_‘â/® ÿHîR©ÄÔÔ´Z¨r™ä™'øÿ4*Ó•!$XXX¸ BÍÄÉÉ Áß‚Ñcvckk+L“ÁS?n“òaÊꃡwÖþlTgÏâ¿+¼IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/35.png0000644000175000017500000000216112233761321026540 0ustar mathieumathieu‰PNG  IHDRà*Ô 8IDATxÕ”ÛkeÆŸ9ÌÎn6ÛlöIv71Ù¦›j[Úˆ¶XŠ(zQ±âE¡ˆ z)½°ÕÀ;A蕽Dï´RÁRЖª4VÛ$=˜4‡Mö|Þ9ÏìÌÖo÷FJºà>ð]ìÂüÞg~óÎà OÈÒòRÈã>Uo4Ï—Keð< ËnF ÇbX 89#8–½Y,>öù|AšO„‹Åc«kW*24ä…Ëåì@hw: V½Ó²PÈ HULއ1‹½ /‹>¹}gñu×ñ8` ¨ f»‡¡¡éj5ܺ ]×Qe4›m4ì&¢Ñè9ýá›››/Þ»¿ú¡¢(÷zAQT¡€ÞQ‘Ïçðpu ÏìŸAx4ئhöÆÞè$\N>}á_|ùÆØP8‚b>P8 MÕzjœ<:Ñ!K*‘1œ={&îr¹®’ó)ðhh<&§_;ý™(J= v«,qš/UHÛ"660Œ:R™,ꦉV«µ°ü$øÖöv4ÉC”t‡$¶¶áÛ3»Ñ@:WÀï·—°¶º ‹8f;ÒO‹išξý.B¨×-èšA ÍEÓ°,’¤ P)׺ͱ#ýš_þö»Ã~„QèºR¥ŠQbè& Èvï¨V•Z ?\½Ö4uÏ?‚/ÜZ„?@¹\Åúz¢·)a88–Àix^/á±îÝ¿ÿV<~ãÙ]áóׯ;Ö7Ö¸õ•¦‰v»…ý3Óh4ll%3ØJeÀ°,‚#ð¼ ÃC>lg˸s÷ÁEr­»/œ¸vŸ—Ü.þ”Ùu­*ÐT++±¼t¥\ †aôÚÄ;CŒŽÀíÀO?ÎÉä qâú±”¬] Þ%‰8.Ãáàáô@‘eä³)Ò”‡ª©½æu³ÞÛâ 4Ǧ)ÜY\~îé™}'lìøp‘©L2™¾0?ÿ$.Šèl'öà 0(Va·Ó -àÁmªðÂ4àò£â`1$U7f¦&µ¹¹9% !ƒ‹4'´4ÍPÏ΂.ä°ïø ȵۈ Æ¥-üŸ#2RÀ¥Ì<{§0wxiÝkê Óãco8p0Ñ×9ÙéÑÄVúƒŸ«"Æ>è-`IÑ ËUÒð24ÙÀâ²O7áCy‰ü–U˜ºÿܾðÛ’ón2ËV+:m ÎrJåkx®áû«Ç`Q'ñ !ÀïF¹®#дä¹ÇÿÜõ õzÑä˜óº099qN’åWeë×W¦bßàú/a<ô ´ùQÌ•̓‡œOæ‹`hwE„+»ÂÇ'Æ2ƒŠ:EQ4l;©k²ãÈAí¥|é$9‹F½lSŒ¾gbº‹ÅRø·‘$ñ£Íµ‹•JeÿµüÞôùöCpíÜIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/9.png0000644000175000017500000000155112233761321026463 0ustar mathieumathieu‰PNG  IHDRà*Ô 0IDATxÚíTKOZQæ7tÙû&Mì¦éÒ4iÒEÛu»1Ý•nÜSÓØTÓ¤6M‹ÆJÄ€„yxä¶ "ŠÈC ˆ‚(bx@Þ2=ç$WilŠëÆI&÷fîœo¾ùfÎeÝÚj•JåùÙÙY9–ñP(T><<,—“É$ñÓÓSü$ñp8\ƒ$/‘Hào_‹ÅâÃkàçççAE@ ‰D‹‹‹àõzþà ¸\.XZZ¥R b±d2F@ÒÏ.F_:®¸ÝnXXЂH$©TJ ­¯¯ÀÝÝ]ðûý°µµN§X­VX^^&y*•Š‹ÅbP«ÕF.ÁëõúH&“ŸÏ‡À`||8ðx húڂ£ÞC?6Z§¬ZÝnTÎÝeÝÚMí7‚úë}ÕjKàIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/5.png0000644000175000017500000000230012233761321026450 0ustar mathieumathieu‰PNG  IHDRà*Ô ‡IDATxÚÝ”IL[W†³Šª¦ ]u±ë²»Dê¢JEUEjUEmšH´ÅeÌ`‚™l‚±ýlÆÓ³ñ€ŒÁ˜bLÀŒWÀ&…‚Ä`*\ý½Ð* BI[µ«\éê>ÝwÞwÎûÏpáí_bJv9åAn´Ûã½ü¿·¶¶Þ]‡SREJ5U»ÇÊÐíìÛSц”¹Ù¹ÿ|`È]+Q4 ^£GWO?¼ ¸†ÇPI)@Õ©|æKÔ¿†NLNF‰j•×2™³v†ÐÚÙƒöŸž@ÛdC»£ñŒ܈Mа¹e:nÿ“ ÷&tìò*š­èt£Ó9€b¬r ›®‘q¤åqñÅíD|úå·¸}'ápîùü¿G ŒFJ+EâsÀ µÉ ¾T© oâz2 V Q‘œÉ"Òé¶ÖÖÖFÜž÷ÏAõ†Æ÷Jx»í]_µX“¥-N,vå ÈzÄG©P.ùƒûX© ð‚L†`ï„L©=ÍZo^U(ÕWÎÀ“A9“ͪ‡¹Í…¾Ͷ º†TmB#"â¤VÛS« ¡©§˜E?‘ÈÜá@wß0šÉÉÈá ¢Jøleeõ£SðÞÞ^Ey¥à˜/QAª2bÔã;5´;ÑÔÞB…"²{Fœú“Á)8ú†`hµƒY\V™£ã>ò­ ·ÒÁ,dÃëõ^?…/,,ˆâ“SA)ô0[»ˆ®¨¥Í(­–ãG&Õ5„žNczæ‰x ]D† ±ñ©ù¸~ó’³Ù`WÊ”YHì9È}T  ð'üÅÎN%­9Î.à F­ÇImç— qón>ÿ:?dÂH¤  MPšOsp/=ŸÝø1_Å"#—fQ˜ìr$22P¯TGÖ××c^j¾¼¶.—Xlh°Úð¸J€<â=ƒY€"Lª©Y(áU!õ! ±ñIÈ/æã~j69Ä©ÆÆ&pŠK ÒÐÛDï¸3 Õu»¢´u*5‰žF.1ôú|h›˜A_ µ††Î`­Óšáqt8z108„Zª¦Ng/ÖÖ֦ϕâÌÖ ·Ë? 1H”ëp‹D¤Ñê ©W‚_-Fÿ˜é Æ–VX{]H¬‚ÖëÑ@"–Ò ƒßïÏÝÙÙ9[çÏ7‹)ðNo$²8èxâB I&§´œd_¦¤¡%¤í¿á‰0âƒÄ`_©ÑÔˆ‡¤'¨Æ–ÃH$ÂÛÝݽz.jíÌ’ˆÑ3‚ì<ÖQè×¹‚éÅåíñqÏaZùcÄæBLIL*†«Ö"Þø½§Ï…@0KG2IN´Í–ý×¶¼c~UT×fÛ¥u†”—Ãkj†×h³CJ´ìì´Ÿhißßß·]!ϰÙlPýl.¡©þ7Í“¿{õîàààêÊÊÊòââ"–––Tä¼ø—íÅÍÍMÕIwÎÏÏ# Ìýk¯c¿ÉéÄI4Ù—^½ßØØ¸´½½M Ñápøäý;Þªõ³5Qõ*ÚE*IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/33.png0000644000175000017500000000204712233761321026541 0ustar mathieumathieu‰PNG  IHDRà*Ô îIDATxÚÍ•ÙoUÆyä•ÿ H¼ÂPQ@ªK[RhŠÚPhB›&´ÍF6;uìÆ»§¶“8±ïžxËæØnÇIœ&i¼ý¸3²"!K¥H0ÒÑÕÜ™ûÝs¾ós^û_•âÄÿ¯þ%\çE†“Ò,Å ‰üŠlÆÎZJbcÙÁö†›¬ÄQÑ ÇI¨íÖ•s¯âq½þ<Â~A"·â$»ì&³Š[IDL$£fÖÓË13KA…Ô4ÕƒPó‚jG“¢VŽU*„Çå‚ܲÄjZ±§¬¥d¢F<æûøœÃø­}DæÆˆ.h y&È%¦ÔškW“W)p²;ÇjÒÆJÒ!V;ë™§Ö\ÈþIfL=„¨ið2ޱˆùuÄ|Ž~Ê9›š%É­àõCYIÒnΡ†Ÿ‰™…YXO9XOØÈD¦Y‰™X[²t>bÞØEÌ7IÔ;ɼõwÂÒ=ªåŠŠZÁk{rmßÇæšƒdØH*ô„tÄÈJÜ„ßÒKxfÙ;¼0A|~œ˜g”èü„j~ç Òx;å¼Õ¢ÜZ µúÑι´yqJMX6e'ä@Ó}QPq…°{ˆ€ã,l„Eñ-àÂçúËè’µþRhJå‰Mör.â"ÔD`Š´ !›°â·÷¡»÷%–¡«$|<ú;D„§K¾ AM·¸`PMª¤»M6®ƒê ^‹çÅU>%iR?™°Õ˜ Ç¯!,8N:f§~FÛù1óÚ[,ÚzñZï#ôÈa³æ^E–§ž·p~¸é&(¹Çn§:2ÁÇ,ãÒ…ææG ·¿‹þ׋HC퉡&§Ð¾…ÀÌÏܧœ·¨¥v!5÷ëƒopkn²õaïÿÝÏ™þí &;?Asã®Ñë„ì‚ûÙ±&¸YP9ùµ¨:ÏSΚÐv}Æ@û{hnÊÈOÒóÕ[Œ\ŸYm'AYjA¨Å­D¦'žVe[ÎÛ[tÞZ¡ÇIAM½—Ïóèê;ô]9ÏÝKo2Òqßô]bBA[Ô). H§)dŒ4Ž–N+ô¥½åEɇK{‡ß·‰Úèùúm´‚ç…©_Hù´¬†ôde3© %=•=ÔJuÍÞò·]QD—5؇¿ef¬¯¡›èÌ(²gœ¤w”lTÇAÞ®z¬‹sgìç9ÑËì­;ØJèÙLÙN›¨„𼓖~~†ITiN¢bsm¡Z­´ß2‰þªZÛ>Ôÿ ­xí>{‡“IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/16.png0000644000175000017500000000221412233761321026536 0ustar mathieumathieu‰PNG  IHDRà*Ô SIDATxÚÝ”ËOceÆY¸ÐèBãb63îˆq5lg£aáÂ… cb†¥ÿÀ˜YtƒŒÃ : …™BK;=½@/”Rz¥´¥Ð–ÓC[Jo§´¥wÚb`ÀÇ÷œÅ˜ %¿äKúõÍù}Ï÷¼—®ÿçj·Û7’ÝGGGÁ`³;Ïóµµµîóóó·^|rÒêÍfùK¢\© Óé x\…ÓíƒZ­C(’Öjõ/^ÜÃóùøašG¡TE¾X_¨‚;à‘H bÖ1;Ï@©T5 …C÷\žJgš…ã Z¤¶p܀ǟ€ÞäÃV€£s +–†G›d044F/aZdÝ?_PoÔ¿Þc£Ïr… xR‰çáôÅau†DõÑxåë0Yƒ„’X6mâ×G“0›ÍÌÙÙÙç´ß¹­VkLpgg'7Ò¹ü¡¼Á,Žäj»¸×ìaÈUv˜×ü8.×ÑluâË`÷S0ÌU‹µ²¸¸ÈV«Õ»ÏÁÙlöV 9 si¤ pû"°Ø8ÌáòE1:¦‚fÅ6Æ#¦Ð<9A«}Š _Uu”«MØ\ü84Œñññ‘çðÝÝÝ‘0›„Ö¸‰ƒTû”¸àÞ!X²@cð@gô qÈ£Ý9¡¢OµÌÊLGSpmîáñ¢÷ïb``àEx*%XùR ß>–Í[˜“­bai EJâI«N»R¥#Ù26¥ÅƒŸ1%5@)\òÄÞI ÁÄÄÄ_p*¥>––n/ô Ô#&§ðàá$F~‘À`²Âºî€ß€Íî†L®ÃÃQ)~–à·©(Tz¨µF,Ê•˜™™)ïïï÷½Ðf³ùi*•:¥WPr âŽr܉D¢C “É„ùùy¬¬ ‘Ì€a4p»7átºàõz…8ý/Ãáè{Yã¼¹³³;MC8¡Óé°½½] ýÐëõ0˜››ƒJ¥B$ö&“I“ËåB:Æúú:m›pÑ+pŽãºív;)[J¥t¾KÜ´Z­^ú-B5-fggH?Í—ù@ ¹\…B!  3w^,oP+ç|~?¦§%-†aJZ­öc!Fµÿ6©’-‚Â$ACí»jµò )/Åb±k¾eYöÝ—v'€^ ƣѨ­Ýî d”lº—ÍeKÖëõA‚~”Ïç‘Ïà ©ik4šÐwƒ´{ÿ¶ý/..z.//úiVdTª§XZZÙJô{^»¼¼œ<ÞÚÚób³Ù@ö|ríÁE3û6eOd ðx<¢×äå&€/#‘Hmuu‚zÅ…j!K¿6œž; ‹ÊHµÉd2›BŒJñ+òYL¼T*ã4>®§§¿žËå¾—Ëå "ÎívsµZí¦# -//Ãd6QŸÉd²1ê‘÷»þEuÿY3Bžß²X,?¨ÕêϺþ‹õ'&9ëT' MÿIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/11.png0000644000175000017500000000226512233761321026537 0ustar mathieumathieu‰PNG  IHDRà*Ô |IDATxÚí”[LšgÇ]²˜eWîbÉ®6ïv³¤»X¶›%s‡l˲tíº4ÖX£X팭sÎC¨ÆÃÄ:'"ˆ¢¢‚""*DPPQDÀjAãÏÇØÿ^YbR³6M³«eOòæË÷¼y~ßóþßÿóü¯f‹å«¬œ‚ø¬¼¢x÷Ò“¨º±±Q¢Rk$e•ÕË‘¢)êÅғƉäôôô‹W‚îííÙN~q9ëiµ  òî^ŒÃ¶ [¥EQY5htæ‰V?d›˜´…lln½4Ü`á—³`ñÑ&S@ÜÞnC+š¤ È{5P©µø^…B)ÈÊΫ†Ë)ðyôJοQ‚µÃf tƒF4KåPõë`2¡”ÅGrF>2ó鈺—†a”§Z®òìììÍ„®­¯_ç×7Gö<î7Óÿä AÒy_?âЫ…(`°ÁojG[ˆ;Ié 1X†Jk@­Hvm=šÚd¼\=rggçãgàQ³É¢‚- Çï‡töþ OË-AÌ}*h\¤f?B Oˆ1ë'úMhëR¡¾¥LN~}X&›G¿+ûÔ…Œª3éJÒÕ ™ò1„-Л,à7·ã~ 9EL šF tÒ¿úõ&¿þ94þ`r0Ze¨æ‹ ·ãaQnFÝÃç߇âëk·q;!Õÿ¡ˆØ$Dß}€¹ÄÎ~¸?<WWDrÌo®þ„ðÈX„†SÈ3 I© $ý‚ДL„Qâ@‰½ë_?Þ Ç­ˆhD&¦€’‘ƒ,j6¤Òv¬­­9ˆs®\ÀÉÄ]_\zi›0Ë:嘛ŸW­‡\Ù«ÕZ93¿°¯Pi0b6CgC%‘jÈhÂÄÄ$ÌcVôiúárÍð¼^oäÉÉɳnÙÜÞ ä gp%]G«««ú­½tnŸî ©¥ ä=´±WëÓÍç]}Ç×âŠ8õX\Zžt.,æ LXp»‡‡‡>¿ KçZ讨kÀÌì¬Z1` ™´;=Þ•Uëññña·Ú'SôÀ65õ™Ñ2ÞàšqDºÞ2þW¡‚Ý>-yîdºÜËï̺—;»»±rû¬»BЈ•••ÚÕõuê´köÔãõÖ*,ïK•ГIÝÝÛûÔ»ºFÊ–½Þ•ž ÏThƒ©Â6t÷ª°æó}4`w9[åŠ#ò;H*‘*E â{Ëèh¶X£jVª`3[펡ƀÖ>õaÀ‹B?ãÖXÆÉÔ9λ}ƒ\ð'ûûûç{FçœHg9Ïg“| ‘)žXí}§{éC“mSN׋á¤àõ­­­àííí`r1¯]Ú{›\êy>èR>Ðçó“º÷þSñ¡W'‘ß¡ÖIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/na.png0000644000175000017500000000127012233761321026707 0ustar mathieumathieu‰PNG  IHDRJ#+IDATÁÍK“qÀñŸ˜A0PŠNt*èà!tè]ç©‹ˆjÐ%¢HêQ,Ðì’Z9gŽgNÒ-êtóÙë“nê|m: æÊ=›³ùþMC)#?qšÅÒ¥Û+¥â¬\ºFuâÿÆ/­•Qî×›èÕS¾Y•vÏ‹?eJ2† I ©3ž=ÿOúˆ±ïÿác¯^ˆ )kØ,yËÒ^%XtPÓFIÇCˆ,œÔ«EŠfYys¶*GÒŸKìÆ±ÒI´àÆBˆìîLÎDx&wQœ‘ƒ ÓI+¾`ÇN ¥ǤV!Žeä_jNóaä#|@aˆtÐɆ–»»P&òæ¦]„±ÒŒ…}øPÁ'-xYd„Ùi‘·Ugˆ<ã&cÔ"óŠ6Þq6dºc¾FÉèÆuKzqÞó„k<äm<ÂÆ=npŸ~>1Ƭ>¤ËèÄ}8 a§‘:ª©å2/yŒ‡Jîp,ÅJ7Kˆtj6¥¦Ý˜yC^s§<ÇÌ TЀ™n† ¦gRé”8²+e™¢™&šQ¨§ ;&ZQi¤ ls ‰¼ˆqo±2F€q"Læ+~\XèÅA”QäÅå•x•6ºñà#@? .,ô&¦¨ ²8Fåúì&Z±á`ƒ|F¦7 Û²8)Q0Q¥$ÛqÅŽ +˜q`GÅÍ0ý6g¡8¶*igÕ¶''4/QÜô0EmG´Yñ6eŠEÞ\‰Ï0gX/BQȒĉB/NUOa¨)AN‹ÉkÆ})¢ï`:} %QYÚ,Þ’vΉÒ™‰¥ÄY%ußøþ@œâ7ó2uë’IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/47.png0000644000175000017500000000263712233761321026553 0ustar mathieumathieu‰PNG  IHDRà*Ô fIDATx…•Ýo[gÇ?çý8~9¶“8‰ã¼t­Ó”5k·v "ªHp…¶KÄ߀Ü‚¸®¸ØýÄÐ.¸à‚«‰¥¥/£©£E´éÚ´™Óø%~qì8±cŸs|ÏÎETVµýIl=õùþ^~_Yâá³À óð£A0:z“@RÅQ~ Êàž¬˜¥£÷€ßÐïJ¸oú^ ×µñÜþÑ»aÆe$Cð“ ™W€·…@û¹pNwÃwë_ëÛMìA€ã |I’UÓPp‰F !GÖ¦AŠ\~ü¥€ô pVdü¾3Øy«ÛëÐ?t ‚€Ãþ¡€Ê¡€¢(h†Ž3ŠŠ\R–Az| ÝœE\~ú x÷ ^ëân»*ÀN ñ)ŽOµTBÓuDæâ衘ﰬ8óss(ú Hæ$žÎú´ÝkÜ*—6ôF£CcO"f é»&¡À°ÁA_Æ4dú¬t’\.C"‘ owÉfSLO/ ©3ŽÊÓñ›ݺ«Ëj’¨5ÉÊœ…ª*ø"kÄA’ž۶Íçë÷ت֨6Š\x}ÑhDi»Æøøº:ÒŸ‚ßüô6ã“Ç@PÁÁ4Tdñ¥kèt:\Z]¥ßëÒíµÐäs3³8Ã)@¢¾Sañø"Óãÿà«—¯ž¼ÿ`c>¿´L* ‘aŸÃÊÈþ`ÿ€½½6Å­Û|ó\ŽÔäy¢†ƒ®ëh† €‰Ði·ÉdºÈ<Åbù¢¢¯u Y¯áû¾ÈtÏsÃ*\Ç¡^«3±DŸ3‰™É¢êšx†¦2L3Ü ù‰A†¡ëtZáš9ŽËV¡ÀÁA—Ba‹~z“R¹Âv±L£^¦ð胾BínÓŒKX膮+¨µ¥°Už |ï6‹’¦„؈}цù¼hK_ˆy”*úŦ¨¦F0NµR!Ñë‘H&IŠ!JhšFÂJHÑ#¸¸TþpíúqËbw·ãº ‡ÿ½»Ž©ëbx¶€îȆtÃ6E£áLFÞUSH¦’Bè‰ÌïÜÛ\žŸŸ ‡3ôq]oä3IZQªµµrh{3¶Èг8yz%4‘0”rC3Y©qb± äëG=/—·Ù™K<ÜIJäf§DíŽ-ɤ0ÈÌ ¦aR¬ÚTÄo‡ƒŠðpÿ3“i$%h¿ áíVsvýÞ†Yo4ÃAF “Xõgññµµû—ÿ}{Yé´9óÚYÖ~Á¹—Oñp·À÷μÇÇ—NQÞ{… +y´X‚ûÞùþ™ý‰ÌÌÕTjÎÕè;|%T ôöçJÓ˳Ó,œ;‹$ÌðŠÏ_§2ÆùÜâsÓém4NñêRž¥¥eö}‰år¼”?ñ³H$ñ>ÏY€£w6Š?üÏãJrn"Mžä—þÎx:ñþîß2íríÇq¦²-ò/e);ðÉêe„Sß5týž²0Ê·{²ò“[Ÿ\ ÷UñpöqWS ùõ»wߢÕþk×U†‡]:µcºÌÊÊË»²bŽxN¨Š,\NË‘?¾øQ$b¤œW/LLý™þ”âõ¯¿‰Ýïqúl¥Sg><1òÎ÷—ê©Ä%^ÿ"v•0XªIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/31.png0000644000175000017500000000202112233761321026527 0ustar mathieumathieu‰PNG  IHDRà*Ô ØIDATxÅ•Ok\U‡Ÿ÷œsÿÏd2Í4±Sdl)Üøò\ºtç^PÄ•èB\ºp+7~?ƒ "E0ÖÓ6i2I¦™›™ûÿ/llñÝœwóðžßåbgûû;¿R‹YŠÃᜥ*2Ê¢À)Ce5ó³9àÆïGRžìÓ 8Þ{ȼ*Qh¥‰Â„þêƒÑ5´ DqD÷A…\„?ÐÁèæµëkÜûî{ïõ”eN:Òo§Ú¿NïÊ AQ•~{æg ”Ö¬]`ÂQǸðˆìÛ¨äÛþh“ÍÛc²ºav:e>_`ˆ(Lvçñ¿ãl H'´$lè-¯ƒÐYò"\T0EÅßà­Ú›o¼ÉøÎmÐÆ 4^”`«Š ŽYßbpuDH"XÕÒÚ‘V¿/¶bu¨öwîñË?˜¸…÷‰†+h-í£€å+}’v⬹¼Ï϶Zí’ͦÙ‡FkMû„½!&X³|iŸ_ØDr—Ö9¸œƒSˆ™!þÞå7Ñåw(À-ì+þÏúÏ ÒãtøÝIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/28.png0000644000175000017500000000301112233761321026535 0ustar mathieumathieu‰PNG  IHDRà*Ô ÐIDATHÇ­UkLÓWŸ,Î%.™¯en É>l™ÛÜL¶uÝÌ0[âcÐMê°¢" ŒMÁò(Pä-òÇ£ÐH ¶”W)´…––}@KKKy Šg—&óÃp‰Ë¼É?÷Ëÿwî¹çü~÷¸¹=ãš²ë - ½‡Ûó^6×^ÏÈFYyÅÿÁ¶I³Òj aÅìnUQ¦Ë²|¡÷aeÔÝᘢY,fåòòrðß5N§s3ùv¬s:¼º)#Z-Å>e_ÿØiŠUõ¤£S„¥GBL‰?EIüûè&á±ã†•Y¨«-…ñ»²<±ÞfÕQL&SËââ"u øòâØ ê.XµiÐj‡pÔv¹Ši{¡xcªaŠ£^EqÊLJ¿#óCðØ7€£Ú1ÝÌhiÊ@«¨z½Î} ¸Ã^»nÞœhëùÅ©!¬÷‡¦ñÐ7!Äg |mÆ÷Þ¯×~\£ìÆUßmPð<± ñ†¼n'¢':;;ŽÖ=UçÇ+s”Es&Ù/´ Qç^G葸vr;bÃŽË*‡R¥FMMB~Þ~Úk,yI‘» —5«çgO1Ïjµ({†Ôm†s>ÔÌw}f;~ó߃ڒð« ‘t¡[¦Fe2Zx37ÎlEvøp‹¾Äât)æfF ss3Õÿ?9g©ªTò¡éÎ[ȹö oîBgâîn!-=ñÔdÐÒs!l“¡@‹œÛ¿ 4b+DÙoƒ‘íÒürƒ^åö+™ûÒT ÷¡:j8? .>ÔÄD0Y,ôöJÁd7 9%¹y¹èËPr/—N¼‡«gwãò¹¯F½Š!òôPûD‡G¯ð¢‡ZD9jÓÄAT¸ìë/ãæ•ïÀâ6A®ÐÀ4nÙ2#Ù¥}jÜNÎÆÅ pÄÄÓ‘žY¾@)ù~'IÉÉÓ;_£Ñx¸YÇy6Ÿ†´f'ªb^Áùc;xjÕ¥0𠘺r•íÝè¨0:6fC'¨)e EhXØ ÍÐŽš!lïAVNbbþ€J¥‚›y´ÎC!ôßÏ©NЧ%F"ãN6 î`|Ü «Õæ*ꔃ'aDo„aÌŒšú6TT È.BJZnÝJ€R=‚¾µL!2³r lmtIC£¤¸¸[(,)#zæ£G¦Ààˆ CcËFÐ,R IЙR ¯Uu­Ð \r P^Q…˜¸8¤Ñs‘œV‚$Ú]B¬¾t‰»ú“i©´¶AÞ×™b"ñäŒ/”#¯°´Ÿ-m °»08d€ÕfsI¦‡~ÔèªcršyýL>›xp³MÚ<9\1¥ M-RÂN1MܫƘÉBtìGAq$R5&¬V˜ÍcÁ„ö®~pyn‚jPzn‚CÂÈíï¡F$õäóùP¨† ìP-Pi |&Cuˆè©uu‹ÍÅv‚˜«DyU32ó(,mB#¿U°HpÜË´ÔôUån Žƒ=½R'‹ÍF¯\>ÒRÛ¸O&1+‰üB6ù kõ«Aá2µŽÓŽ”ôûH¤U¹„ÄH1é!ê˜ðññFmmí*O—¡KK‹g›x³—ƒüqáW?DDD",,AãøÑ/zéBΟ|Ñ!‡ð#®\ F@gqê'/øùN‡ÑhÔ/?~2L³3SÞŒšJJVv…ÅbQ{%BT„#/› …¼âúo‘ö&h 5ÓQ’†¸Øhp¹\°9l*£¦"CÞ×NI€÷ük ‘›lXYqD›Lz¥Ùlt%Ѽ‘:]N?€6ÑÃéùÙ~w넎¦Ti˜$ÜI¸l 5I*¹àþsì-Ͷ۹5¿ƒŒµý¹ôü#K€N;¸ªgÀ³ÖüÊú¯äÛÛª˜IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/43.png0000644000175000017500000000221512233761321026537 0ustar mathieumathieu‰PNG  IHDRà*Ô TIDATxÚÝUËO£u嘅 ]¸š… ãÆÌBù\̬\™¸2ÆÇ3㌢#0´†ùQžR(}Pè×Òmi;@<ŠPýžÒòLʳÀð8Þû[È ÆH¢qá/iÚü¾öÜsÏ9÷6ëÿy2™Ìë‹‹‹×WVVjc±˜211¡¤ÓÛÑ`(òê?ÞÝÝÍN$’‰éé9Ì/,`kk x63Ÿ?<<22–sppðÁ•À¼@>;;“{{{å®®®™ÎN3œ./¼=~t»}ôþ²Õ­NFåãF466m yllLv8²Ï瓇††ä“““Ï.Kp}}}Á`ÍÍÍ())A[›%*ÊÊÊP]]ƒ‡+À,*‚J¥†Á`¤ï´ÑgZ[µ¨¬¬Dyy9Òé´ô'ðååeèõz«†ÃáÄ£G’ø±V«E}}=€¸«¨¨€N§#ö$IÜÃh4n½÷8iêðz½˜$Éd‚ÓéDUÕcbôZZZ ÑhÐÓÓƒöövÕ"MMMP«Õ ³¹[’Ñ=;5¿öp*•zwph8e¶Øa±X … Ë2¡.-ƒÁhDCCƒ`êñxÈP?5b\—Ë…Úz l®0†¢#²LMMIÑßbø¥î ̲}}}‚e?îÿv»uuu‚1uGºwŠ®Èx¨Ôe¨­¥g&3~®ÑÃb‹Àh꼟žž–žÍÌ ?8m›wî~‹/oçâÓÏo㻼R<È/Daaò Ÿ_€{ßäázöÑÇ_ ÷¾yù¥¸—û´7aÄ`³Ù.ÀÉ€[Ä~3 “fXº¼ÐlÔ&iú¤“º±Ãã ˆN`µ÷ AÓòŠ_é¹ ½Ñ _ „ÀÓ ¥-²IópëÅŒu||œÙÜÜP^IS=b±q,ÐQ†aêè:wÐ{ww7‘èF(Ûã%S›Aù÷DR¹<@Òùù9hâ¸%Ö[˜iµZ¡( ›É)á‘î&A`xxÉdRäÜl6ƒB!:›ŸŸORÎo¼N“‰ÙÙY Î3§B Ôöö6âñ8G”_ &Œ››dü~?Ìw"eãããØÙÙ‘^¿Fào&¬¦¦†Y¦Âáp†‹žžžr'óOºÃää$XBÚ?œo&Ås!ºL$ïÐ=åüÒ!i² LMQl£¡rÑFL1ûH$‚µµ5 !o¸#Ž+{#ä¡@œÐ÷ÕTP½¿¿ÿÊ_-¯÷¨È(ƒp«¼X&N -$6˜Œsót²¹\ˆ%úú*›1‡%öl ƒòаÎ4þ­X_ß Y"Â\·Û¥¥%ÚŠÏédÿø[žCàÏ2Ö¦¯–öKKÃíƒ|á{ŽHM4eüæUØP8Ph+¤©2::ªP¼¾£ I”¤©æ}²LÿP,Õ‡YÿÖ!ÓnìííIdà›«««åý¬ÿúüãDºØï2®IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/10.png0000644000175000017500000000217512233761321026536 0ustar mathieumathieu‰PNG  IHDRà*Ô DIDATíÁKLšðï¼ì°ó’e¦Mšìе§-Ù–­]ÍâÒÚ´I5U«lƒO«ÖŠV­Ê´:E«"â”— ‚€/Ÿó-h§âÛøíø¦ÕÊfõCJýo‡™4¦6˶c?â­ÿ„/¨ˆ¼ËN&ÍÖŽHâÿàt¹Þ›™›7ðF¡´Ö§Ñ Ôè}ťƾþÁ¯‰kvnîT½±y¦ T­É U“|]#tMfçðt/Ý'74Óõƒ£tÇÐ[3`§œ.zÿCâMÌíݧ”jýp¡  *}3Œ­`òªðqE=®¥dá´¼ §Ëuø(4çŠä`pKðiM+”-¸\®âMòyå×r‹+`îøýC6ŒØƒ«Ô"L¦C'7˸‰Ààïp‹W ÒÔƒp }C¿ïî>ÿ€8ަéw'S5ʺµÎà+«®ÑÜ C‹U -R•"S¡™ž‰Ä’*„0bP&V@¨1@=»„ÛÌ—–ËÓ3s"¶··?!^%–+„*¥*Èëô¨ÑšPojC³µÅ¢D'¥C¢Ö‚Mc3„bJË+QY%A×° dåbd£¡±uáàÀwŽ8¢7µŽåóE¨Õ¡³wµº&´uõ¡½gù|X± KdHHJÁðˆ £v;2³óÊɾÁˆG<ZÂÉDäæÂétGØiÙs‚j%”õMx<î€D¥CI¥ñéyà–TB«7A§ÓA,‘Âjµ¢Íb#*×C¿‡µ£ w’8 ÒÍF6·+++AÄ‘ž¾Á±;ì4pTÊÔ¸ŸÍC(ë®Üd îÁO(4HËÈ_(CrÆC„F2q!è*¾üö:¢î²q#Œ‰Ûd<Ñ ¨Qi¼[[[—ˆ#OžíT=ÙR89ˆÊãj ¹ø<¥ß3ÁáËq>V„0 Y\C˜`°bV,ÁY’25k´ÁhTSN¼J1í HjqáJ3N ²–>8¦¦a]ÚÃù4Íí_óà¾Ø‚¹ùytN®¢ÁÚ·›Â½ÆU„pë1épÄë8w|CVÛÆ'§hÙÀåd!œkëè_tƒ_kÀ‚{ì:;zǦ1½éEP™š¦öåÍ]éCu/L­–¶wˆãvè——Èfj3âÇü2·Œ‹EýÈTaá·?À÷Á66ýì.βU€tl _$I±ºî†~b†®~¿?ŒxÚÙÞW¢$gæùŸzžÓƒ3.zýɯ/Êm;L•bÒ1…8Ã~(Pajv>Éáܤ‡&æý®í=\M X×C'1,ðŠÔÖ=¥RIÛ¡_†q:ÜžR‘̵··gto>5nmo|gˆ¿ÆM¬y¼,a;Æg»‰“øýþϼ^ï-⊢nPu‘8Çã _^^&)ŠzŸxëŸú‘,)Óõ´­IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/0.png0000644000175000017500000000216012233761321026447 0ustar mathieumathieu‰PNG  IHDRà*Ô 7IDATxÕ”ÝoSeÇ?ç¥íéº÷rv¶¶Ìmà†N3"QŒq Ñ ˜˜#zi¸ôðÎÄ„+ñ½2j0&& ‹ià‚ Ê:F˜ŒµÛúÞ®]_zúÒshñ1Æ …‚‰7úmžôô9=Ÿç÷|ßóð¿•ô°› ‹‹¾ÞžþC Û>¹™Íâr:iÚ6’$áT$E¥Ks24dàP•+™löï@Ü0Œ»…g2™ýË+á³­{zûúq»5P‘€V»¢(Ô š–E:•¦\Üâ±í>vMN¾£ëú•º¾°ðš§ÏèÒ4TEÆéP@T1*f•B¡ÈÕŸ®P«ý~]â®Ý¦Õl°c|üЇ_\ºùë{ír™þþ>aƒŒ  ;Š…©dŠ;·Wxr×a½-+ꥉ“¸»ÜQ€ŽðÏ>ÿBÖÕçI&ñü˜®i.4—‹F£I©Tó#;v4èv»Ï‰ñ“Ìtäð‘ŶQTVâ©,éô&©T†ÕpDXÑ`#£^¯Ójµæî _[_ŸˆÅSK%Ä"DÖÖéëëÆ²mâñ4×~ !,Á²î"úÀ}êd‹¨æÔ±ão9tÃGSl¿jÖD"ln¯„‘e1G±X$r›[ˆÊ¹O*ÿæëï^4ÃƬÖÈæòd³9jâZŸx"Ea+Š“œø>wþ¿iVzÿüʵëxuÍÍ<+w"È’Ä訇CE–%º»="E½ ºX\ºùf0xééGÂçææœ‘µUÇÊò-„=Ük·˜šzÛ¶X߈³"¢ˆ>¤ãri ôKnZ¼uZ<ëé0eÙg4—zHD ³R£ÂòòmB¡"’Q‘‘± mÙ¢‘CÆÈu.^ÜO¥ƒÂÿl¨ªª:HoŠ%2iqŽˆ7Óãé¡,“JDÅo³‚øzã”Ëd‡ÑhDÏ<15yX½ïà«*±SssÁƒ[¤hÿ 5áw!ÕŽ¡ëó,‡Lª#ÇñË0Øç%çTé+æW§ÆÇÌÙÙÙ²Ïç;*Îü¥r1Ñ2ÍZyÏÌ J:ÉÎÏ‘l·ñwi˜Ù5¼ƒŸÊðIÆ gbœÙ½3D«UÍÚü¿ï§¦§#=o4¬áÈZüÝËùm^ª-•Mj¥¼¨ð+ÌR•ë7Ø1ÖdPºGªXcAܯ›fðOpGøÕŸCÚR,1™ÈçÐ…¿EËBË&¨ä¾¤Ç}ïÏ?‹-dqÕ‡W¤$Ó¨¢ÛÍÒìço=ò íõh ;f{5ÆÆFOKK¯V¬Ë¯LLËó£ìÛÿ:-m„½û õéÝÓ'é .Ù“3 ãì#áÛ·âÝåʸ$¶l[ÖFµZvîÙm¾”H̺¶y''&v¿lIjµÛ?ÞžšœŒòoU,Þ¯®œÎår3ü×ôÊqö#´÷IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/32.png0000644000175000017500000000235712233761321026544 0ustar mathieumathieu‰PNG  IHDRà*Ô ¶IDATxÚ­UklSe>e“Ì!VÈpRp‚‰‰QB ðMýA€_jSq 1&f &D‡¼tèd@Üd¶nÝ ¶Ú]h»îÒ®kÏÚîtÝÚsz]×nÝÖn§£>~gmÐØ1áMž|íÉùž÷=Ï÷¼ïG=lxÜ)„•zÔÑÕö¹”†<àwËÃ!¯ Ÿ$äÓÒš†]zºháÿÂBTšôYyžÿ˜JE"‘;$Æé7s!;’‡êÓÏ û§•à´{ÀÑÇa¹ó Ìì´$ ˆ2j,Hš01tÓ‹0ÿ²§ÞY‡<Í™l„¯ˆÀWQˆ\ÁðårÔŸXÕ…ÍpÜxãõb0ÃõŒ°?³Õ)±T×Y&5kJøìç@·îÄ™CbAã¤Ý)b;IæÌM®ÆTŠ|Ý2X®ÂѶcÉ®AšXZJy=c¸Ûvš†Ý°È×ÂUC’¸‚¯Jé«IU;–x×%˜RÏÛi(ôžÏÇtC˜14u»ÐÑz ¬“ű6iGó1©ŸUÑBƒ ÔnÅÙÃbâŠUÎde¬‡ùÿp˽j&+ `®”` fú;ŽƒuYeÚ?$L9¸…™:ÒâÛQv ôÄÇüo|.O‡*VÀzu=|º=úÃn»Ë¹¹1ù;”ï`F­Z…ž‹ÏÃT–®Œ·¯‡Q+ .ÌÇöe$…&ÉTìD_ט°©©x †ÚäTô©w# _ŽÁêÍðÀ¬Ø—­ ÷9ÆÐwS¡S~C_cùT8œ›ácÉ<,öû\űXìþ<êù ü\'¦¸àlZ FûcÝîÿÚÎËœðÞ¨Îs˜ÊC“^Ä¢Q õ0!Np½tY¾? oy ìH}‰€$ôÈ£æû‡G.‰\ A6õè—KµªRø=¦)êQG8º9¿ëèÃîù À>5*nžIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/20.png0000644000175000017500000000154612233761321026540 0ustar mathieumathieu‰PNG  IHDRà*Ô -IDATxÚí“ËNSQ†;cîÈp`ŒO`Œ9C_ÀÁ‰#5%B@ñR‰´Üi…^Ò-m¹´=½Ñ{Ëi¡-¶ŠËýžßµ6!a☰“?ÝÝkïoý{­}—ã‚B¡pÓÔ/W6a¶LAÙÖ†&%2™¾t¨åDùBÍ­p‰^L9½hlú@¦‚hïTA§7ÁãñbeeÄu(677±@ÎB¡ ï!x¾PDG§¹<^²Ù,úúµÒ @±Wõ-°ÙH$%<®­G†âƒÃ:˜Æ¬H$X^^ÁÁÁ¸æX[[C.—C<‡F£”JAÝ;ŒX,p8 —Ëh4§ÓŸÍ-m0 ˜Ÿ—`6O€^ÁGa±Úi_”Ìd@µ‡b{{›ƒìþÀ ë¤d§ÃóT’,¹IR,N·‹P"‘‘ͺDØÓÐL˜ž™e89_>uNE>Ÿç†ò•ÈmŒUs/xÎb ‹,¾•üDQ„Û-Âï0ƒKw §®ÊÝ-‹²ûd2Épî:ysU æÏÏ&ä½¼.ŸMQI™ÅåVp†ÕÕ9LqSÙ 9ðssåy0dqŒyU]«þç ç›ÊpæòS|CÎ}år™Ÿ\ÿ¥¥%¿*MFÖââbU|ê8Æ{ùœ|¾T*Ußù ‚}M׎J$PF®$kwwW žôå ôdω×9Î{ÏŠÀ1¯(.Çű›ž{\· ùIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/25.png0000644000175000017500000000201312233761321026533 0ustar mathieumathieu‰PNG  IHDRà*Ô ÒIDATxÚíTkL›e­ÓÉœ4s&º ~8cæmø‡e..ù¢˜¸É†l@²-qP]–0—BÁuÙK¬ ÖÊ*°N?ZJY ¥@K¡…)-¥-wj†K¸_„ßvË~øÛp’'9Ï÷>Ï9OÞËÇÙÅ.þ;ó-C$TÒEBʬäô= “vúxDyÑþE>‘;Ik"÷\Sd¿l,í Î?H‚v|-5“S2»¯þØB ÉÏÄ[ZZ˜˜FÊJU ôâ]ɇߊ¤}ˆÌ”ãM™o%•ãhuü³°GÔ…ˆÛõ«°â•ÌÿbC€°?ÛqX y|%»¼{ù'D“ Ä6áã¨4ðù|†#•J…Í”‡ÜàçB“‹bëŸ`Î'£Èè@tJ)„&˜ï+ lsàlª†N$h‘.kA\^-rørW…ÛÊ6$IZqò«O&‹ÅŒL£CF‘×Ó …¨:uî[”°Ÿœ™ §.ðQ,e¡²ôCÝ=„ ¼û¸%ú—xÅ(dë¡è†HcÅ{ô¬b/¥RÉpFFFN‡ºº:H$ôööB­Vƒ•Jå3S(HKOG}}=ŒF#jjjNs:²o ÀVɼèëãr¹Ñï“““ guu•éééÝn‡\.ÇÌÌ èvÁd2A$Ááp€ääx}u.— `Y÷DbüÞÕ…©©)_¿@ ð®7®¯¯¿ÎÙÚÚ lmmëõzÔÖÖV,//7455¡¹¹›Í†îînß´ w<O·V«…F£ñ™µµµannÎãåeee0›Í)~xöÆÇǣ襟s»Ý¥;;;ñÇÆÆ°²²IÍÉÒÒR?Í')ÿt{{›KMMOO×mnn’ÙÙYo„ÏÏÏÚg§üøo¿c4Ÿò—ÖÖÖNP±½Þœ¾½±±ñ¾—?ÍCi¼öO ZN#ˆ³‹ÿ'þL|¼Øä…Å´IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/36.png0000644000175000017500000000254512233761321026547 0ustar mathieumathieu‰PNG  IHDRà*Ô ,IDATxÚ­•{LSWÇï½mÁs>f–,jq™™ûgs1ÚmþcL6ÿ™Nýk3Ù7–¹M]œîåƒQ¦†4¢8†Њ(*8 €¥P^…Rú¸”Çíí“–¶@k¡¥|w*d.)K\â/ùåæœœó¹¿óýßïPÏjvÛ€„8â_êy›ª6SÒX“‰º™ÏîvÙä¾Q§1§xÔùH¯.ß ¯£IONNH}£.ãôtä05g±XtñW@.§-…5u¦óÖþô±±1Y´EÛ~—ïk;H¨nËY˜*—ƒï;™ˆ CæR¨®`:ªF,´Úçs¦{F¬Ñèä…x à÷›ÑÖp<×]‰˜ƒáò¡/[OLJ¼· ®r!,÷6"`ü¦ú·ÑÕð0Þ‹`À©Ö6gÁУ€ÃΉàÁ`v:¬{´~õ°ÕëÐßü |šíÐ\HF–¡Ó…ç1ÍI‚û†Ϊ-Tì[ò¼yoÂQsúQ€žWã¸Þ‘Ö¤xö"†r"Gcò, g&ÇÙ \'iD2h„~¢á=ž‚ÀQ"?Sf¦b¢© š¹,ñªÙ‡åÜ` ò•ÂÙô.,R‚…4fÊ(LgpißB @¾O€þý šö2úŠFõ^ÜûiÔù"šdá÷yî%À‡z¤mu‡ÐQšŠúó)°_b0s—jˆW@ñµì/”|.@ë·"äïOÆÀo rÒË!çÀK¸û ˜Mc<2ɉ'|5°6ù±¥p_e×ø-‡ОàöA:O1(;$ĔƵt!l—iŸZ[€±€#íé]vÛ$­ $ºæÃ»ýçÐ{+²Ó–`ò T¸ŠBXIáÏ“a–-†ŒDßWÈ ø˜æ"J“Ä–2(ù}5l†Óˆ×C¼àÈ•–Pûžªb;Œe+a)IÂÅO#ü/x¨…A[I2ìê¥Ð'Á£bX‘mÁp—ôä§@“+„¡l9ÔeïAY}VÎ Š·²’‡U'%N®^oÓŸ@›ì-œÙ—gþœ,f4¢=4¦ Du4bZršZ“å4‚ׯ½ãݰ’ýnN©ó¸aÓÓ615Hó»Ê`jØŠœïW¢é¸3rÿk6zhˆ÷ïŠçæ+(Œ.ñú«àÕ; Ô"u$‘•3UÕß¡½r3ê.¯Ç#Ë,¢Ê9rªœ“ùh1ûÍ50ÜX‡vY*:”GÀs}ÒyÊß'óòá±rª6Až±µ'–Ìj_NÍJT5÷-Ÿóy/ä¦Âݲãž;0ñ6Ûü?+Ô6ÜÀZä«`)NAsît^\A’–DNÁ r“$—hì%RÄ#Ö­ƒóŽ:ÅÇ-l|ÿ¼`Ò i–ÕíÑÕ}æé}°ÃÝ1®ÿ-«Ðû‡&’4UÖ*èr×bøöëн ·æ}•»ÀÕ­F·Zê 'vÎ õŠÍÆ´ÔeÀë±=éŠnkºäëáj߉Õ6Œ”‹ •m€§kôеê“’–˳Z¬²µö(´m•Wü>ߢyž1+éçÚt·Ëš‡úy€Ï§X ³:Œ›ÐÛ– •2—¯cÙ>Á EwÅ7ê@8üXL=‹ÙøA¹×cò;²vwÝß«Y>†˜[ìñ8¤ƒ=ÿ$´(“Ÿ ©ÿkÝrI«ò ÜŸzÞæ÷Hì|?ÈSöͳîùrÅ %ò–CIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/24.png0000644000175000017500000000111412233761321026533 0ustar mathieumathieu‰PNG  IHDRà*Ô IDATxìÉ­ Å @á7Ä¼Ž á‚œIÐW\ÓÐ)*øÔIÎï8>FUÿk­kŒq{ï)¥sÆ9÷vZ+ûíî½cŒ!¥Äœk-1FZkˆÈÓ.µ«¬ÑŸ‡ÏçÂd2ÁívsN£Ñ@0„ÇãÕjE©T‘L¼_.—€jµb±²Ù,%“ID"8èõzär9„Ãa¤ÓiÄãq®!抦iïÀIŠ<›ÍFA6€$2«D"b±(š2ÓV«…jµ ›Í† )ôûýëõ:Æã1v»Ý·žG¹ßï£P(`2™Nv:(—Ëp¹\ÜHäH’„T*¯×Ë*ív;ÈsÌçóïëõúõ_Ðûýþž,ù±Ùl4h`h·Ûh6› Á1H¥RÙlf†Ô˜PCþ§ÁB§Óa0ˆÆ_ßn··´)’ªªÒjµú¹X,Ðív1N18‡C¶ª×ëA¼w: )_¥»D¬˲ü‹âã?×ñz½¾!{ çóÙ "Í¿Ãá`8NüÑ&ðûv»÷Ï¢ŽÞ?í÷û¯žçyþÃó{[Ä*ó‘1çIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/45.png0000644000175000017500000000272612233761321026550 0ustar mathieumathieu‰PNG  IHDRà*Ô IDATxÚ••IL[W†»è6R+u×E³èªU¥vÓJÝtW¡Vm“´ !Q ! ¤ $ `Ç„!€m° 6Æ€Á6ØÏ66xc 3æ!Ð8L€ñßû\U!4ê“~7è~ç¼sÿóÞ{ï:‚û/?& ;Bß½òÝà$¢Ö``»[“Ø\ó…´½1ŠýWóî--‘çEDùÿúupÓØ]ÙÙXõ`ñ/žÌ¶cnÆA‹œw`áI'V;±³>Œý½• YSItìÝðÀZÞÞËI,=íÀìL{H£>3˜1 þÅîTŽÖ÷7ý˜ž²cbÌJ¢ƒ†‡¢Û©€¹¹Ž:H+™h3ˆà{dü'I·[þ~’`c–p>}ü!‘!°=…góÖP ÆGÛ0>f%Ñ §½vK5i)tm1anb¨_‚;,U˜3b÷)èM~~<XÅ«ÌNÛCõ¸)´%JË¡Öj ¤”KD06‹È[ÈIµJô÷RpwÈ`Ò Ði­ÄÞÖøð½e¼xîÆÔ„Vs¸¼2%uж˜ÐÕí!ꅮŠVùÙÐPBôtÊCj·H Q<ÄÆê hûÒóq¾8ß—S‰bv1âZ4¨›!mÔ@,U@¦ÒÁlu@£3àzò=œŽˆ@ZZ",Æj¸R4Sl¬Ð}_=d‡àÓcðKY)”°ÚèîõÀÞá‚‚€éhu8‘Â`">% Ìü‡¸‹Ô z\¤5|²©C ¦8_±||åù:ÉÆñ…b4ªõh"-¨©S€Ã‚UÈAm½ÙùňK¼ ¹ª ît3Šy"°Ù¹¨‘p±¶ì¥-y>>>I•òyT j2 ZN…àR¹© bo¥ ¤”Ûé9ä¾ Ã#>t­–?U=<ò¸Hf±CG\R¢5‘]Ï‚R£¹¥BÝ&OˆZm näs!oh€NG¢Ià´=‰zz=ýÄuŸïl¯}gZû3ƒIMÝÓÓÓ Rýÿôi÷:Ïó»!6ßÚœïÖ`¶:©"^QZµw –eá£0¿b0¡·`ü¡OžÏÃÆÐ.–ì.Ü»7 ò>O*/üô<¼j·Û‡#.šH$Áó66B‡#HŠ"8êÓIÅ‚ ÷ïÃôŒ۷ï`tt :®?55=l4‡¿3èœ\ümÕôûýÁƒƒƒ¡/_>‘ C¤jèððP{V«ÕñÅÅE8N˜ÍfPÄÌÌÌþIÜ1wçææ`2™ètZ´$8© ÿ=œjøÌòòrÜëõ@¯×cžj{dd„¬Z¸9pAwÉ ÛíÆØØ†Ù!RtþDàGGG§ÆP(tƒʵÿqÜøêÙÁ@–ÉFIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/38.png0000644000175000017500000000210312233761321026537 0ustar mathieumathieu‰PNG  IHDRà*Ô  IDATxÚÝÔkL“Wp?-[⢒-™©ÙBfœÛÜ4Œ@¤¸XYF ÐM 8å&ŒA@³–Š\î PRJ)ÂŽ–,e¥¥”^iÁà c&·Ae„üwÂwæ>í$OÞóáyçœ÷yÎ{àÿ;ž?_4 \.—pW\.WPÍ­wö`Xg€Ùþ#ËvŒ[õ?F“P‚ŠÊJ(ýÙìëëã8NÙØ¡]ñÛùùô‚âRˆ:ºÑÕ+ßÞiç#ÔZ2·|üÂ2t>ì²­¯¯²¹¹ùÑž ù«FëJHI‡ UI×#4 ¥þÔ‡ñCTÔ7£¤¼1W!lmÓï»ýòïºXñ)¨ˆPÓЂ+ê!IqïA;îÖ6#!5ô0&î–•ï'=-‹D2'ü¢räp ð}7ù%¸SZÔë\D]¹†ðÐö_UGöŒsù…’Œ\>’3r‘¹ N6yE(*«EõýÈÈÎ#0 ÌïØ¿t9·¸¼=㌋Q’¯#cÈî’Í&` Jªî#-“‡¬[Èá#þZØ©7Àˆd!êrœÓ0nV¾nh¼Î/päË€ÐíããÁ/®‹3 iÙ/Bl"‡Ì³À!§ø–•vrúß-Â6ïaÒRo šZ†ÎøžÇñŸá”‡7¼|h8K ħ§½áM¥!„Ž‹Ì˸Ä@Ph.|?ÿ`xzERršdGœôê;F“i&Ž‚Ï=½ðñÉSð¡ú‚NÕ÷ ²àq¸»»áر£8G;3>¾ð¤# !!¡h—t¼ ·“¹ã³³³*•Ê.‹ÑÐØˆÖVÑ_UUU¼Ûüë–r?@>÷ ÜÈüæE[[›´§§‡ÜЪR©´³Ÿä5iu:ÞÆÆ†Ç®ß$|¸´´D%?.êŸ^ Eo@—Äÿ™~ø Lº×¡”_Y$9nkkkÔÕÕÕ×ȯö‰Ãû¾Lóóstƒ¾ã!ÔTA); õ cqÏÀ.Òiªl†wñs÷ÛÕÉ¡ÓpȳéÕñaUoÒüº;<ÑÛSã\[[•,/ÿ‘¹°0C{eüÙïy¼1m"äòv3)ôÉÿå ÅrŸtØüæççOü[ã¹#µ@?‚²IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/44.png0000644000175000017500000000265412233761321026547 0ustar mathieumathieu‰PNG  IHDRà*Ô sIDATxÚ­UkL“g­¢AQ Ëüat3%&nºS§ÓùkYÈbB¦cs[–¹˜%ca[Œf&S§ŽLÙˆ\„rëV €-½`‘rë…{i¶”^ -¥-_¿^(ȥ׳Ï&#Ùp‰Ë|’'y¼ïÉÉyÎ{ڳּϚi³Y0k³¥ÐžwÍ»D>!¿lvýÿV/z¡P0;"â¼Ká"%¡P(oxpÕñ©yòwð8÷aµšùÛ óšQŸ÷& ²t,ˆQw3 üÊãM¥BÈ8‚.Ñ- â0¬øÚøÒÎRô ÂfŸ£¯_ò¶mX±g}ë> vñûPˆ¾¹óî]HÂõÏw"ëËpáL®|}₃¸ýݨ;RñXã‚×Ppç&©P Ÿq8‰ ÿ¢óJFˆ¨‚_ûw¢èÒ^ˆo$`"7Š‚Ýèe¤B)ec¨O VM6ÄŒÃ0ÖmEþµcP÷€Ð[O ý@*³qÀ¶èbÂÔzµ—1]´ ¬*ÊÁG0ê5˜#\ ´Å”yõ¬Zdÿ˜†–êT¬Ì7bqÁn[\\äþü3½¹É û²ŠdÔ\}Îû›hÚEÍQŒõ5Áí&awº0<:…¾Á ܆=ŠJ[P|7õUçÑÀ¼zL·Þ-«Zzp¾ù;ý¼Q6 îúxH9?Á9GPlÝ0LÛ!š„jÜ'áF[§íÝ*”W0ÑÔX7Iø);~õƒ)*ù÷)¦Þ¯NûL·¡ä‡&o;dùûÑZñ4cCÐê­POZÐ;¤ïá ¤ýtJÇ©s?¦-vn7ÌÖYðù[[!“÷7hµÚšÇÙµü<ŒmàlEõmþvýRFÇF¡¤XÊ(¦­<êR¢Œ!İʅJöz½Oìa.Ò“yLV †††@óع)½¥xmBCsíåGñ¨ñ6$}ãP©§b—Õ:3&(ö­í tËǨ¡’Ô Ü1БQ#ø¢p½˜0XÑ)CY íXÓ<´j8·â,€Qtݼl “°ÚŸ°Ä×°Äh£dˆuŸBF…%4reàû©ô¡¦–‰žžN¬¹ÅmçÎ+ÛÒ!a@OU L¼sqn@Tw̲,ç^³ä2:yù7ÿ‚~1õµù(-ÎCiI¥Ù(.ÎGc3.##ÊÜ5Ÿ/ú •ßg±­ø˜0ó’!ÎJÂ\Õ6,4ăd'Àë-Xàn…—µþêí- â o?¤NÁ¨aB¥”Øôz£@$z¸K«ÕÄÿÍŽÑ‘¶_†¥i”×GÊ÷ÁUoÕf„ëhüAÃ|u\U‰°3÷Àײ ²’D0òNáñ¢e퇮+Dö½½Uryg1*½ŒyÅÛè*Ø…ŽÂ}0V&C’O‡¦,³ìàåì9ü¼Ðt÷Z[…äòòrÚSÁ#a¿Î¤©D ‡’$b©¸ MëÎÐJÒ”ò?3ç0Vµ'PyëULŒV#´ª3xÌ䃺|Èå²R*®žšçz½:Ã9çΠ@,Ï'•EkyžJCsþK<¸‚貃ݿ¢C̳=‘" ¦M›”¥$éÂÒÒý™6AÌ®m¢ Yâo.ý]~„§é^÷l¡Þ8½R¡ªéTo¢ý× ,úDÜ,íy×ê ™93c‚ÝîÈ|Ö7¯v}>ÓàIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/41.png0000644000175000017500000000221712233761321026537 0ustar mathieumathieu‰PNG  IHDRà*Ô VIDATxÚÝ•Éo[UÆY°Á$Ä¢"TvbÕn»eÁ‚ „„È’ ¨+ؤ„6!¥JBF'ÄñXñq<;¶cÇñ<Åvüìçyˆ ¤)çy‘ ¥‚€°tåwßyïw¾û{Ï{éÿùë÷û72™ìËVæ@Üf³Å‹EÆo2™†ÎÏÏ_ÿÇàîññí£"SL¤²¨7š899AµÞ„Íé…L¦B(â5[­Oÿ6¸×ë 3¥R*›/¢Rk Ti¢È6Ï0HçYHåfðÖdK¤–eå”xøÚð\¾ÐekMôNNÁÖ:pûÓPë½ØõÇiÞ‚ÆèÃÃif¸?ñ3­DÑ+•J Õî~‰ÆŸrJRN–àð¦±m¡{±dëB3ôæöBYlê=øéñ<ôú-ùÙÙÙ'4Þ¼m6›ò@ L&SB± _( Ï^&ë„2+7è:¡t[&jõ6Žû}ä™:¢‰´:CÇ`Ün‚(±î^‚ŽŽnù‘r8^à<%¥­~*tÃôŒ уpôÝãzýS˜vI°Õ&êÍ.,Ž0î?‰ÙÙÙ©K8U~ê –…RçF6_F"Ë 9D4ÉÐ=T:Ò‡¥A ú´k2$Àå‹á‰Ê޾±ž(~˜01ñcccÏáûûûSÙüÁò(“ ·/Í­]¬ò Ø›Q¡"÷ú } Ù¡5z©˜J<˜`‘§…Xio]Å¦à“˜››{§­4‹Åêv§j­ 2¥ó‹x09-C«7Ãl±ÁçóÃbu/Tbrz?<\ÂÜÂD5äJ6,//׉ÄÈM·ûQ.—; ƒÐjµƒ‹ÇK§Ó'V›Û X[[æFƒ¥¥%Èå 8IŒÝî€Ç㡸ž»OsûÈ‹ÎkdÏ"Á¹ R©°··Ç’ŠÑ+Ôjõ áêê*¤R)Âá°'“Éè9x>ŸÇöö6, —èË+p²eÈjµ^$ ¨—Ü¥7Íf³‡b¨B¡ÀÊÊ v½ÞQê/k~¿B¡"‘ˆl‚æñ+ðJ¥r£Ì²E¯×‹ÅÅ¥ž\.¯*•ʸX*•zC§ÓÈN]6™JrÅý¦Ùl|åp8ªÉd2D+ã¬ùšD¾õÂÓ àv4MÑ*ò8A§É¦{ÔÀîU«µ÷Úíö8Aß§£n4uP×´´;Ýwé½q·ÿôø_\\ ?{v1ʲå‚Túb±&“Áýý·¼Lñò˜ó–«ËÀç³³ó¯Ý¸†¹C~c}}.—kàµÏçsøŒ Ù2 å|þÈ¥¿^ÞjµîЩ(£b„Rëæbæs‡Ã úÇÄ©}\NK¥X,~+ ãÔˆâN§3N or1Ú!9ð–ÁP¦>¥Ä3NçåÓGûþÕp$2åõùnÆïd2ÙÇÿÉ7øw¬àëgÝçïnIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/21.png0000644000175000017500000000174612233761321026543 0ustar mathieumathieu‰PNG  IHDRà*Ô ­IDATíÁËouÀñïï73»3Ý÷£uY–GwQ@ä@#Ô*¢1>8yÁƒ‰ñäYÿ½šxòàÁèÅðP¡€/¨¤–Q« Ý–>g_mgwgç7¿‘Æ^üŸ=Z»¦§oÚÞv礒AÞô·ŽÖ ì¸3__˜{ªßó(•«÷ó…B~æö´¢ˆBq/ýž‡×í°#—ßË©‰É%Ó4ÿ6ÙÕn­•RI}ukËcÿþ#_¶s-÷·wߨT>íŸ% ¾¿ýC0HT÷•¢²”Ë4Xo¬b!c,""VÖ—i4ÜO€%»šuL#dmù>­Vë\jnÞü)ÑõÚgÛ'—Ò¸î¤4Ìò•©{|þÅeìø€»w#ð[ÌÍÍóégç9á*K‹Kï¨ ˜0ÙõÜ©3¯®-ß!“ÍÒj®RMáºm6;.­ —0 QÚÂÛö85ùê÷x°2ýë?=z3£V}’TºH±XÖZ§%õ{½w#ÍGÞvÀXmŒHwqœNw}…¹ù5îþ±Š‹3;}kƒñGøêëëÄí!LÓ¦6ºŸjµ„×ÝBqIƬ©”ÊvÚÍ7Ò^Oqíúmnýü Ã…÷‰Éˆd2ÅÄä$~ßÇqlþšù†r9Ç­éßYY\â…‰8N†ë×føîʇž>†Rêeà°ÔZŸlw6ß^œÿˆ@'[(a™bÈ"Ê'4 4¤“ ’É €„BaRŽ$ÊJðÄ…|þ¢í8³¦aš›ù|a£X:8¼½6"†”D‘&ôQ*@kÍÂŽX†@ ‰`¡Qí#H)Ù!x¨Ûí~Üp7>pW—P}A¤"²CGÁ¤C aHibXq¬D†âžL&û^,?/xH)56ðýJ0ðQaˆ |"­Ñ:b‡E ÿ'RJ¤aaY&¦#nÛ]˲nñØ£ç_©‡žfÕIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/8.png0000644000175000017500000000206212233761321026460 0ustar mathieumathieu‰PNG  IHDRà*Ô ùIDATxÚí”[L›eÇIÔxe2£‰^™Ý™xa–xÈnLÐDÝâˆñÆ-Qæ¦V%™¡30ÑQ&ÚË¡,ÖóöëAÖ”–5ÐAWz¡Ûh@Ö”"RV(RN…Røû|_l£¦»4ÆçæûÞ'ï÷ûþÏÿyÞ·ìÿøwÆîî.bb‹Å,ËËË6ÆÇÇ-‘HÄ2==mI¥R¯×k™™™yóoù|þåò•••r”'“IîI–`è9ýM|ÜԎ׵N<%sâ…1ž©ðv§ïÊÌx£M ¹\Îû 8—ËZ___F£ðù|A »ŽÇãðûý¨°ðjU *¬~¼tös¼RóNÖ qJëB…îÎðk ];;;ÕEðÁÁÁ£ÙlV’H$àv»¡Õj¡T*ÑÛÛ *T*FFGÑèá4¿_÷{ñAåYh#®Ê”¨wŽá‚Ò Þ…/àr¹°¸¸8Gb+Øq‚ìÀìì,ïééL&çž6› áp®ÁA|?ᣋ—ÀÜ â=‚‹:%ø²ö+Hm.TÕ  Ñh0<<Œùùyìííµá[[[`•{<¨Õj´´´ µµõPk´¸áÃyÞ§`¬vØœëøä³*¨t …BtuuÁn·s•ádË“·°Þ qŠ¥R)T*Ìf3§†~À­««ùøA$‚¸½`ÝhjjBMM ôz=º»» …@\„Ÿ ?¦SSSœ5ƒ:F£‡}}}H$ …TQ+åó/B¡P ^ @ åÈnÈsçEøZ(×ÖÖhn¹¦t\“¡³³‹³Èd2qåJ©míWÁ0 êëèèè€ÕjEG×54\ù–ûŽÄ±"Hù÷GRßœÉd˜¥äòbÅe9”Z=;Š.ò¡f3ƒˆûŠÄ€aÇÍææææ˜‰ÛÓ®:µ çùßäɆìeXNÙ?ÅêúÖk½£‘ܽX ;ÙÝc…¼mtÒ4>uétúx!]HóDbðø‚Ù²R‘Í埸lô_g¬ÎCRÒH–=ü‡uÝï‹ûU¦ëø-³Q„‡^Š6÷8`µÙß)}‡äöy¢;j XXX¨-Z–ÛgÞ‰_}¾1!õç™BÞ˜MòÅ:ˆš›ËKÂI­ñ¢÷†Âo‘ÿ$—?|¨±?jjRü˜¡fU÷ÞO?2›H.OÞ¾££öŒ=æÐ ‚Ö x¤‘åßyÏï}mügCá IÝN ƒý‡NëäæfïAÛ¶Pðp(†…ßËAÁ²ì/’Tú8çDQl=.IÒþÅ¥ÕsN‰Þ¾ü>/8ŽÀu; ÍFV³‰R±U®at8ŽÉäû‚ œ]rkn¾H"è%PâX,óûCC7LÔj2nÌ^#kõº‚VË…ã´±m|ü€îðÕÕÕïÜ]üÐUU ‡B ( PÈõ!×ê(” X\\®I$b‚K3ìÕñ±Qø¼|ºÂ¿øò+ZÙ¡x¥|ñ‘8LÍOÔxy ¢C•u$ƒ8~ìÍŸÏw<Ÿâ/¡ñ˜=rô3rU°Ä±í¶/HJŠäue5 Ã2‘ÉæÐ°,´Ûíëw…¯­¯gsÔe Ь"^C0„íØÈ犸qsKÑ´[`Ýòˆ˲N{û]Nˆ =œC7ÄÆƒå4hŠ&{Mr¨‚€J¹R9I·ÊÏ~sþ…þˆÈÄÄØÃ©Ø¬T!Ie˜º ŠŠ¤¡5P´•Z¾û>®ëZïß‚ÏÎÞ@$Åf¹ŠeR-™ŒŽÃCü34ž@ ëÁí;wßš™¹úô–ðK—/{–——¸å…˜–×u±kbâ:½žÁz& †c à½~ô‡"È*¸9¿pš|7ÐN\lÛ9ðó‡-âÕPUšŠû ‹H¥æQ.æ`šæCÇŽã€e€Q€×ïÃ¥‹§r…Ò ùlûcʲ¬€Þ«Ë2¤Ò&©Ì‹@ EQPÌgÈ{š®aYÒT 4Í CÑ 9ެiÌ¥n?óÿ‰‡¬<òÇENe66²§.ýpå“+¤aÌâ}Q4Âè©Wa»Y þŒ{7Mhâ;ˆ³4Â}Tˆ¦>¹º216¦OOT‡††Þ ã)ý©r²ÑÖuSÚ;¦TÀŽÏ¡àv÷{ K÷~ŽÄ€„3ùA·mÃÁ={3-° óúöxìøîÝ“é®Îf,½–ýà§jÃÑ0Œ6R5˜JáзÐs󌎴†‹’lá–¢ÁÒµ™?À]à×Myç7òÉ|µ‚(ñ]wšð–sP+_#èÿç/<‹&u÷Ò""ýýØlœ¦2}àùû[þBCÁ´x¦C>Œýoä„¢*¯jÍÙWÆ&Îâòµ8öí.ÃÞ}Š59¹ûäJQߨˆ¢xnKøðÈ`®GÕÆ(ªǶ7 MñLMÖ¥—x!z¤0>þÔË6ŽÃÛÝd2™Á?,×?Z]Y:]©Töâß–ßNü°K¾ÁIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/19.png0000644000175000017500000000176612233761321026554 0ustar mathieumathieu‰PNG  IHDRà*Ô ½IDATx^íQKoe=3óÍŒíF$ãÇL7Å.$4@+EM¤**°C¢¡,-ˆ_’Y±ç°aWA…AUÔ¦P‘E[$D¨Iœª)qâø!¿ã™ñ<8uÕ?€„úiŽîýîœ{¿sïÅ“óÿ‚DÀ÷ýgî>ø±T*ÍÒl6ûÅ”a\¸{çÎÉç_x1"nnnbiyŽs„û°‡G˜=Q€ë:è÷ºe…¹LËÄÜÜüªÂBóA\aŸFˆD\û•]±±±±¼°0—)—K¢R©Š|>ËØ-1<ˆtê)111!TqcmMäŽÏˆùù¼ˆ'tQ«×Ľ¿Jb&—»,»®{r8.I¡õõ5ܾ}çWÑi7ÑjV)ØÛÛƒ&lhªoÔã¿C\ùêK4ê5P;°ïã·[¿@׸¸ºú­eY;Tr„V«‰„Þak ôzUèêY¶èñÛƒ!ÚÍý>Éãcž;eA‹ù¸òõøðý‹ÌÑ£eJA"§Ói£\.#ÈÑÌl›­µpv±€W^žÇúõßÑl °·[CáéÞ~ë«ø{kê<,-Çë¯ÁÖö•¶!Éêµô¨6 Z­†!d×o>@ýpœ ×âÔ3y4ë6®]»‡fk܉cÂ@¯5ÂwßÿV»ÍÑ)0­P„Ž«?—ÐíùHg4ØŽÕ’$!$dIGÆ,@|L›!G2ŠTò‹ŠN%|PG´ UK kNBU ! +éȧ]ÓO$ t]G*™D¿Ë¥y‚૾ÇÊR¨E1Ÿíò@–e*Õ ( 8dú,ÎbªgLÀç#„¥X,¾ç8®P–¬¨Q´ü©ÒÒbBÕ Ç©f|WUPhÅ£ÇÈ{WÉM&SÈç P>)·ŽK¼“¤úÉ)ƒ£1‘ɤ‘L[0R´ ™éé4RaZYÞi³9ÚèsÚBŠœt&ƒ\.“u$Î0éyÞ.öó fhxh%Ž@¥uù_àR­Æ]E4æ;ã;çÝ ü(âñCòÇħĻDx•ø†X|ÌŽñY”Cþ£¼ÿÙyrþ-æÿq+RÖ¢IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/42.png0000644000175000017500000000221312233761321026534 0ustar mathieumathieu‰PNG  IHDRà*Ô RIDATxÚÝ”ËobuÇ»p¡Ñ…&ÆÅll̸kŒ«év6š.\¸paLŒ]úŒ™•©nš©3ÅŽ“¶3‡ÖRhA(ï7”7ÊCÞ¯B¹À…(¨i§ã×sYÌÄt¢Õ˜˜øK~ɽ÷üîçœß÷<ÆþŸk0\+Šã,ÛX‡Ãi‡Ó™f˜jÈb±ŒŸŸŸ¿öÁ½““ÉJ¥Ê¤³EµZ‡h¶áp —«‹Å„íNç“¿ î÷ûÕZ-W,1` ȰmÔ-äŠUäK,d ¯)°%•uë,« ‡W†—Ê=¶ÙÂ`0$ø1¼¡<Ô†vCizï@kâÞÂÊpgn‰n²Ý¯ÕjíàøøøóD2ý„©·(Ú6âÙÜ’$R¾çökèO zJgXx‚)È”N<ð 9tùøIlÁÜÜ}ÌÌÌ<‡G¢QÞ~¹B°2êÍ|Á 4Æ]7LI­T‚’ Oàš­.ô$Ë"_…»ß‹Á_ÕAªt“#¶5.‚Ïcyyù9œJi*™J¹<>¨ufÈ•z<âoà.o¼ûèŒVXmNC!Ø^ˆ$*Ì/ñÝ=®l`Sªý#K!üx”Éd¦þØ4½Þ‡¥Ré4‰@§Ó6ú-_È©3¹jÀÚÚ´Z-€B± ãr¹á÷ûÉn ï8Ω5ΫÑh”OpúÁ•J…½½=–Lïìì@­V®®®B&“!û …‚ƒ—ËeØl6ØívÎÑ—à©TjÜápp‘R©”‹â9¸nµZýdA•J%„B!viš/k!’J"ÙÄææ& ½§/ÁÆ5je&€Ïô E“@ïs¶\.÷º^¯s²Ð-Šôj_·Û­/Ýnw3›ÍÆèfœ4_Qo¾°;L&“ɰӠš%ÈÉt»Â0·›Íæ»Ô½³}ZÜnµŽ@SÓÞíõÞ¡ÿfiOþiû_\\L<}z1Ͳõ™ìglmmF,(ox‰ì+¤1§-——‘Îgçç\ypU«Õ›¤7Ö××áõzGZƒA€O)‘“Éšš‰6FÕB’þzex§Ó¹I];ŠŒ’9‚P´>ÎFó™Ûí%ž;²Óø¸:œ®þ2Ã0ßH$’4 ¢´ÇãI“Ãëœ*äF£Áh¬SŸˆD¢Ån·ûöØ¿±¨î_‰'¼@0xÃl6+—Ë?û/ÖïëQ_Xé IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/weatherdotcom/23x23/4.png0000644000175000017500000000217112233761321026455 0ustar mathieumathieu‰PNG  IHDRà*Ô @IDATxÕUÛå~æ0mw·¥ÛC·¥í.ÐÝ_!ì–_D¢â¢01!AÃ^.ý¼31áJ¼0Fï cdA#‘mìb·ÝCÛvÚi;mg:íL¾4ñB¡¬‰7ú$_æ|Ïû|Ïó¾3øÏ‚Á‹Ç‚‡ëHËlŸ–ŠE :†Þßf0a›ÿ˜<Ï_—¤ü{·;ë÷ûÛO$—$éÀƒDòB»Ç„·ŒŽbÈfƒÀóý ^ÇA×›h-äs9Ô”2¶‡°+}ËçóÇÜYXxÅîô„DÊ)Cq,êZ•²‚[7F£¡¡R©¢Ýî¢mv0‰œ0˜<•JºwÿÁ;ÝZ ã£N0 MÓ@èP*äD‰ßؽk'Â_—åøk‘Ûè„Ö4É?ùô3ÖëßʇBaHD CU5Øè6«ÍfÕjáðV¼vâøüÐÐÐEZà/`ñ;zìC…Ž*<ŒN9 ù|‘Ôæ‘L¥ÈŠÒ™ 4uNçÆãˆ’¯®­E2Ye¥†ŠRÅÊê*œN;Œ¶‰ì†„[·ãdÉ…Ùî;Ø¢ëú™'ß| ZÍ4µA$&,§À2 ©mB¡¢ ¹X)Ç <¢ü‹ó_=çòú¹€?Uk X,¡P¡S DQêÊpär /}RÕú–¿E~ýö¯ðx½(È,/¯€aYLL„úþ³tï° C6gAüîý“óó×þ¿)ùå+W,+©e!±´Ø­Ûí`×ÎI˜¦µõ,ÖÓp‡1Ÿ›:gn—™\ ñų´wd 9y=bÆ9›M8Ò|èu]¡UÇâR±Ø]Ä4ô‡Éc³eP |cc NÁwß_žÍŠùyòê±ÒpøÐcÞ¤iƒ$`¥ž¶;^ yQ¤g+êõ)@¡9 ò 4òᢪÜúzæÌ宾µ\F/½‚Ë Ýë£R‚ÙËÀ뽉¥XZà$B< ·Ó™²p*r2ºc»úÂÜ\- §ö”þ¤œ^tTµQ›Ý7 >/bêà3»=„†-P «ð¸?FxLÂG?‘IÌíE†lâ›Ú©Ð¡×§§gVö9ùH,¯½ýS©‚R«µºˆ‘ç.¤ð<Ôª†;y&·µÐF9¥;z{ÌÆüĽñË‚ín:Í–døÈߪaÀVÜ@MþŽ¡oñõ¥§a²‡Oáu¡ÐÔà3[Õ¹ƒÏ.n:¡£öa´-æœÃؾ}âTµvïåšñãK“»¿Ä•ëØàUô¬ìÛ_ÕgöLŸNæ$XÙ™~ 6%gíµú†éÁ4Œuµ^µìVŸßç¬>ïQ1™y± N³‡§ºÑh4 E©¼›J&Îʲ¼ÿ6üj¼ù’›„[QIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/right.png0000644000175000017500000000016712233761321024004 0ustar mathieumathieu‰PNG  IHDR “båePLTEÿÿÿUÂÓ~tRNS@æØfIDATÁ1 Oc¿ÑŒ&@Ñ Y9YCSð7°`*ìœÈIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/left.png0000644000175000017500000000017012233761321023613 0ustar mathieumathieu‰PNG  IHDR “båePLTEÿÿÿUÂÓ~tRNS@æØf IDATxcû õ@¤ X„$ :Æ–-Ëï#IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block/large_down.png0000644000175000017500000000017312233761321025005 0ustar mathieumathieu‰PNG  IHDR! Ëv|PLTEÿÿÿUÂÓ~tRNS@æØf#IDATxc€þXIùÿÿÿ000ÿÿÿÈ©ÿe<Ó °> ]eZÚ«IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/popdown.png0000644000175000017500000000040512233761325023262 0ustar mathieumathieu‰PNG  IHDRàw=øÌIDATxcøÿÿ?MñP¶`Ô‚Q 6lØ ×ÞÞ>eêԩ˧OŸ¾ž2eʲ¶¶¶I{öìQ'Ç2åååÿãõµµ[€j%ɱ€ëÛ·o6%%%÷p^__¨Îˆ9ÈÞW¯^yæææ¾@7d1ж ‡PÉŒ@ÌÿàÁƒ´´´÷0ó²²^ÈäE2¦%BçÏŸOŽýš˜˜øñúõëÑ@1µ’)‹¯Y³&n×®]Á@¶ÜðÏ£ŒZ0j]]”ç Ô^IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/collapse.png0000644000175000017500000000034312233761325023377 0ustar mathieumathieu‰PNG  IHDR ±´5gªIDATxcšt \Êpt³ç¥*Tüïø.†ÿ6ýÿ}[xÐwòìÿmþ3<]õß_ž ƒ2þœñŸ(ñ_zÍÏ€)0‰€}§ŸÿçH0|¯ÎúènŸüÿ¿+H ˆ€íø³€@cœ“þ¿Yäƒ% лõ@iÀ†Cïÿ ¡J0ÜÛö¿óÿÿˆ PeýŸ§Û4\KÿK£I %Ü/¡ˆžÌ´»IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/external.png0000644000175000017500000000075712233761325023430 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®Îé pHYs ‰ ‰£ÒêtIMEÜ -+ægxbKGDÿ‡Ì¿sIDAT½ÁO(ƒqà¯88K9 †÷õ¾æÅ¼›Í^ûm¶»å°¦Þ“‹¥¤Ü4qr$›9¸N(%¯Ø,íb±,"Q8b¯×yÇEyú“ºjnƒ{æ"µfúMSxcƒV´è|€~ÂUŠÙnx¯Sê‚¶œÀQ!¦ áÂÏíí1\ú²_S /‘‘X*ž9à¾ÏÆQE„"m‘A~"#Éo{Ì$lÁ¦ "*²¬2øÒddÝíAdgxÀ‚ð#fAþ`zt¾k(V£^¸×Ð3SÐþrúµð|”¯®¿>” 2]Fóf†4:ç^ÃP>^’Þä1ß|L¼{aÉ…®S”Ðw¶eƒG/F§÷Fc›}Ò•êYï’+(&ÂäålkFAïÍÝ<©» –0}1• i'÷¦'Æz&•‰ÊT’n¥ûéÖT2Q™TþËR†Ö™A&æ¨s˜ÖIç˜ZÕ¥…<<©=š-èR­Ž0͘•6D(ãæÉÝý¥£2ÍlÌJílkFÑ»6|Ä(þ~»/ðæÏ÷Ÿ~”áÕ»…avÍ‚Clw>béÖ%õ¶y…ÇõbÊ-d׺µ<",ÃǃÚ|¦vvAˆ'[EÊ"äáÖZm"‚¸ ×ñ°Sû%A*V›¡Ù.PE-<¾ >Ïa˜}†n'Ä2W ÷_ 1æ`cø{·Ãp¥ü¯}K5²_m,r`¥ÎpsÇ;…>¶Þ×^={WU®@‡‰Æ¥¯¬Æ©·2Ñpn '51¢†²?0yÿøÖeA„€' BÚ-7eÉ¡’²ü‡ŸÌBô…:&5iÙÙªåÞí«ÉÕÏD”Æ3ãG¢®=ùÐÃÄ# ë×Þû—£”p›]ü­þV‘<’.GVÔOcøõt= "BŒnÎ6®i'&惜O†BÝyõ2a#é²…I>W–ªg„‚éÅ» …& Ð„(öqþEe†M®ÍÕ§¾§z2úT}`Íã {)ë´ˆYã¿þ”¨n«IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tab-active.png0000644000175000017500000000014212233761325023611 0ustar mathieumathieu‰PNG  IHDRoôÖT)IDATxcF$ÌÀŠ„8‘0?fG ²H˜AŽÿ#4Î(“Ua€×ùÈIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/0000755000175000017500000000000012262230550022007 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/source-c.png0000644000175000017500000000101712233761324024242 0ustar mathieumathieu‰PNG  IHDRóÿaÖIDATxÚ“ÏKÛ`ÇÕ¿CAð¶›TôèQÏ›»* ‚‚xRªÇ!hݰ8–¨Õ‹Š V¨ …ýbˆ O:666©H•¦ùQ“&ý•¶úõ}^Hóâ 6ð!/yóýäyž$ 8ìhfÏÐÊhòr¢ P,­r¹|_©TP ¶I’Þ‹QÐIál6‹\.W%“ÉÀ4M¨ªÊ%Š¢@–åªÄ 7’€n( p]—ÎÇq`Y4Mã‚|>zH$á.xú×Ö3ñ}#| "|Âö‘޳? xÀ¶mèºþ_K|&¯Þ^fbêôÅÀò' Ò¡ŠwS˜*`-QßÕV Ãà•$“I_0 '¢‘oz'÷=óÖW ÁÍ[˜¶+J¨>t:í f÷U,°ÒÛûV¦ÅòbG: híI¨š ‰|ÁÌž‚ÙX /zæÆ¼p-J¥ —$„/YMÄCLÐþ:*‰ÐÆ ~^:´öª AÕø‚îñßÁ7»I }ˆÛ¿âÌŒ‹¹õŒ.]ãÇ_›‚U@ð°(௱kðbª?|i¯%0,_cpñ ;ŸU1ü_ ~H§&NÎM±wÔ¢¶€]|` Nî='é`ÊÑF=av¯C? (h! Yë$@™GN¾æ¢ç!·ÂIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/binary.png0000644000175000017500000000062012233761324024005 0ustar mathieumathieu‰PNG  IHDRµú7êgAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<"IDATxmÑ=/CQÀñ§ŒF«&¾C›ûE¬"] £a CË€¤“DÒh‘&^ÒHP›ÐˆÅËै¢½/½·ý;=NÈ-ùßÜ“<ùåœáDz$&V[½Ò j}1·â7~sY˜7DËoT©éÞyãI‘ ‰ˆààá¨>©PVÀ¦JR‘àél>x&0‰%|=ðqõ3/”¹“!y²¼þ®Ù£ÌúßanãÈsÅ>%.ÙáœiƺÚ@‰3Ög†,E&6Ã7èá#“ÔqIqÇS„@šmnY¦®Zâ‚$ƒa`sÊ »Š¤ÈQ ‘Itƒ¦!¬(¦HUf¤S‰{µÀ,+Ç%Ö˜å¸9@ßÒQ‰‡—=J?êŒIù¦¢\†«÷r¨IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/ooo_math.png0000644000175000017500000000044012233761324024326 0ustar mathieumathieu‰PNG  IHDRµú7êgAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<²IDATxuÏQJ1…á£ë°à¦dŸ‚>¸AŪ´vÚ™d’ø{I 06Ãÿx>¸\!=hûף9ÑÂóüTI.æ ×ÒG>Œ¼óR‰¤;¹ÄL`¶FN L\x5Ò@(ÍLœù4P“³µ‚H²"¾œùâÀÛ”9sä»*™ õµ˜¬M –ïXZ,¿ –ÖÆ­øMtÊrHHûpMùv£† vÚËu´C2¥[ðÄþ¦‚IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/pdf.png0000644000175000017500000000101712233761324023273 0ustar mathieumathieu‰PNG  IHDRóÿaÖIDATx“»kQÆÕÒ"QQPð°Z V–V‚‚¤ŒØDŒD ëe ©…Ydˆ¨ ÄBì,Le@¢àÙDƒ2Ìcvw3»?ï¹àeØÙ%;ðƒ»;÷ûq¾³€€?85ÎÄ&âl“¹’ –çyÐív7z½ÁßCQ”{RÒ'˜ p†ïÞ{µ„$Iòß¾ïò,!1MÍfSJþ‡·’€.d,Bظ‚äódYÆ‚ €mÛB¦)â8†ªªBREv}ÑâC! @Ep§R‰2¯vã*ØóE:SoYÅu]1‰aÄ}~ n}–Îe M"öáyÞpAþkÆ™ÓX¿pÙ÷¯e Õ¡h¸À¼vÞƒûÈ~®@Ÿá’Õ–¸Üéth?$! ËÄÚä 了´õÚ¥sh=ŒµSÇñgz úÍËðž=¥i ´;סÏÝ‚ÿòœ'¾^Füí Œù9üž†v»ëñBUðfÿ®qu÷Xceò$жXìNÐøDf­£`Lœ¥àã¾ñcœùå½;?EïßÊpŸ¤‚¼Û3¶ÀYRvloð?ÿr0"²ÁŸ#|Ë ½%Ìï2úË‚ƒ$!ëˆÔ(ó$9³à·wÿIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/script-js.png0000644000175000017500000000101412233761324024435 0ustar mathieumathieu‰PNG  IHDRóÿaÓIDATx“OkAƵAÄKŽUðèErôP¤Á@KmˆiÚ‚v5´ ¢ŸDHùú<ø!ôPÔƒ'±’möOfvf7“ݤ>Î;Õac"&ð#°Ï>¿Ì¼3¹À ?74EMù?ÜÒ¬Ø^NPÇ|2™œO§S,Bçèt:¯ó’¼ Lå8Ž‘$‰%Š"0Æ0 ŒÄu]t»]+ùS¾LzA)…4MéÛ ¥çžçÁh4ýH¯×3’Á„3*VB!|ߟÛu¬ |õÊš<:„¨m›0nì"n;Po·YI¿ßŸ|»³Z8½_:O ž<¾ìíB¶ÛÇPÞ™‘ÐJha ‚»«;b£ª"§Ѫ#sOM˜õ@ì7@Ï£ÚÄ»·f;4YAT]ä‹c 7+SõùÃì±}úö¨ þüX³Šq"„°·TØá[wö:[HϾShVÂZ5˜çõ Äû7v¸tffð¥|­ðµrûdèÔámšnkš^6‘=dYFP™˜?…{×WÖ¼W x­u†û/Ê<´ås{‘þFßÎ…üKð“‚%9·‚ß’’PBÁ2eý®¤?`^p“$d]’"u~‹½{f»ÑIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/source-h.png0000644000175000017500000000103712233761324024251 0ustar mathieumathieu‰PNG  IHDRóÿaæIDATxÚ“KKÜP†­ÿ û ý#óŠn 7nJÁ­0Ë‚H©biu2 fÀ¡m½±´RAÄ©Ž.2‰I&æž¹Ú·ç;p´:‡ä¼Ïw4à°ë #ƈÿ‡§Œf‘«ÄJ¥’U­Vïkµ¢`ß!IÒˆü+ˆSØó<ø¾bÛ6LÓ„ªª\¢( Òét(áG$ Åbår™î×uaY4Mã‚ @E2™ —„‚ö„”X9ô0½eá\ñ…„Ç®ëF¢¢¡àY÷XbjÓbû×?ÀF¢¹ÃQ …ïD–å‡z˜Ü4y‹9 óÛ&æ²&L·,$Ô ß‡aÑ‚ñõ;|ÌZÖ }Ó0ò³é».:¡qh'$ŠŒ®cl:ؽð0¸¤áÝ‚ÂW*Ú IˆhAꇎaVq÷ÜCîÌÅÀ¢ŠþYEìƒï&t¦o’Ã+:â]S½ÉeÉe‡wN\ôÍÝâíLžÂÔA`&ò_RLðbhoZ~ÿUEÏŒŒ×ŸòxóYF﬌…u]BBÁó—ÛûÎÚZZ_v윲ÊÇ.¶ü"Ø.²6®nꢞè°—¿h{!’V¶ Ÿ>4fg]úë-$!kƒÄ(óY“ÂSucÅŸIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/mail.png0000644000175000017500000000132312233761324023444 0ustar mathieumathieu‰PNG  IHDRóÿašIDATxÚ’KOQ†çwøÜÈÎ ĨA]€[ÃF,„DF‚"Ñ(u!%„”DîF@.¤•r‘-½PÚÒ2ô6mg¦Ó™×oÄ@ÄèIžœ/gÎû|ßI†p*­£þ í“!tL…a ÜúÛ½SMÛÏL³!xBË<ž›\Ýÿ%¨írL,†‘5ÈY@!$EÃìÏžt:ÜMwΜ*x;´sÎ0ì“­N… IJŒ”L2’lÒ0ŒøQßë-:!xÕç½×1Äý¶•CŒË¨h]Fù{ÊÞý@É ¶/SmE)Ñe¡ºËc`ÃO^<@0–eá-’°ç.EQ×ãU¹×&»Gʨˆ§²¬«¾ ë'¹;ÁAÕ+„´‚þ9.VšÜ\•qUK¤ ¯ý$dD™í¡¨Ïž€5w”}+zlFIË*6wã(lš×¸2ƒ ²¢¢ßG¥ÑZ,%bI‘d/’†ÓŸ€¦ÅóhOJºÜf ¬úU Xâhp²p”ÂñTF‡ |uÝ›h›Žá“=‹áHp³~ ì{*Ö*>/ñ¨ú`GMçÆ ´Û±à1åÈÇ…æ˜`#¤Âæ•1ø}Ÿv‰ÉŽÁÎzæÂ0oIøê>¼$Áå 3$¬ød½;»¸ÔCÀ&裳 |BŸ`\né„–’³·ñXß•áæ5¸÷5¸á$¶ÃT‡iJz¦Õ#a~uß¾€Âß4.§¸Ã$u—Oi±”‚¸¨@ ’’3Ò„¨“9„‹ªe3,æW˜¶¹³EÍ“9·û¢çËÆ2¹•J^Õ´’_mV.Õ˜•+µ3JAýŒr•¸ÖpÈõ†™LÁÓ/ɼò^¯žý‡ÞO`µ,G1IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/icalendar.png0000644000175000017500000000120212233761324024440 0ustar mathieumathieu‰PNG  IHDRóÿaIIDATxÚ¥ÙOSA…ý¿Œ/¼øä Á¬ &…ÊÒ($ 1LE •%츀-JƒÙ)X@YÂ"àÂÞ{¶—ÊRb>Ç)i1ñÅðpî™™œóÍüî àX’Ÿº÷žÌÚ^ÏRUÏ&]*eïTL7…íkØWÉm]æQó"Yæï†5½[ª÷€ÿQjõô^PÙ½!©¿ u±P}*c ô˜¢ à <> Ypÿ”ÌêË' Ê;ÕC€(w¦A‡Þ&Á›°Åõ¼¾/,ã¤ÌÆ? Jî¿_P{jD©JÑP&Ê%ç¡XŠ"e6¶p4 (j_“‡/úÜ4ô¯KoîÍÎàÞ:tÕ·‹.ßä·­ ídÁüGN‹ÓMÓ«P’õ6‰Íñ$Xâ°¯óuMã¢q0 ÈmY·%xÓ¡Û\né)-zŠÇóÐ7ß`nÅÇÙì0 §é^€V—‚mX!Ýn ͞ʽ¶ÚG ¶;¤¶êInI¤IŒ14­•Ý|bm<2Bzý,[Ð5®Ð=ôžC·8Ff7dÙ+rm]fšMmÅ»Ëêæ‹Š_üémY˜Yô28¥0¿¢!n–íg€ã‡_!@råTbé„?Î4Ƨ£\ÉsqÙ8Ĺ'‘Y}ÿTÄÝkpý8ß6®ïÅMcIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/ooo_draw.png0000644000175000017500000000116412233761324024336 0ustar mathieumathieu‰PNG  IHDRóÿa;IDATxÚ“ÍOA‡Ñƒo5Æ“*'õàÅ›1ž¼ $‘ƒ‰41‘”PKÚ($¨DµiƒPˆ )ÝVmR” -Ò°Ûµ»ÛýìþœÙÄMÚØ7yN3¿gæ}3Ó@êÁFhý‡ »4TBËf†X*•¶Ëå2ªAÖát:Õ$´ZiXQ¨ªj!IA@:6%ÇÁår™oãþàøqßÂ@³ÝÐ º®£P(@ÕtˆªY–!Š"2™Œ)Ð4 ôǃ·†£ó×"Rr óŽ#ª% á¤¤#œÒ°Ì*`%ù|ÙlÖjE“’øÅØ¡óSø:y¯oìsXÒ¢¼Å- “ œbµÂó<ØÍ(Ö?÷  xÁ1mðÜlš¼Þ´ÇPâ‚Ù oy„8•Ï”ðÜwĽ0roþÖŽg]‡˜‘«Íæ+k9žUî9¤ä‚y+‰!è3ÃüÊ%¼» gZöž'¹];þ¸ˆ‰Hî¿ù¢á¬Î^$×~ií ÚQd_@3;1^Ãh8…‡Ë,f üÞ øÜ07|1ßiŸœÀ:3Eª.må1øiv_}#/á_\› ƒYzϽ³ˆ. Ñ™Ôdeƒ„CèÆ€7‚ÛOƒ¸ÐýýÓH³(‹”ÚJçGèèÃåžhëGÇÝ9|`~ÒaZÔü! N¶i¦ò/#¯P¥ õ„É^™~ÀJÁA*¡Ö:±ÑÌ?Á_š¡¹NÄ<‹…IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/ooo_writer.png0000644000175000017500000000116512233761324024716 0ustar mathieumathieu‰PNG  IHDRóÿa"ðÎsð-o¡d½µÀÁég$¢këôôþ+• ‚skTp}!ë=λ Ü„ž †î$ñõ{ŽÑ8šÍ&dY¦Cpv<Æ*Š÷ Ût¯ÞýÄÔ“~/Þþ/Jèó¬1h5†àôH”mi &Hõ†ŠI"pÝÞD¶Ð€X’a‰Ñ 4ø/ÁW4“çve¢ŽÞÄ6iÁâŒÒ`3†àÔ•™“öÕÔ Ëûþ±8ìÞ8)9†^’ÕæŽÂ:ƒuðmÁŒ!Øûé/ä£F@›´ Ážä8PM_h'˜ì­ÐÛkÕ%ÔÚzÌoKiÌñX§VIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/vcard.png0000644000175000017500000000102312233761324023616 0ustar mathieumathieu‰PNG  IHDRóÿagAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<¥IDATxÅ“ÏjQÅÓ¹IlŒMmR+–@*ÙtÁ&`Ü(¸ŠYûn}‚+ŸÀ…àÊ…«ì\ Dí"¢ñ.F'0Å´T:Nf2wœK™K¨ÕM=pæ»Î=ßð]#ŽcNƒàl Äx<ÞîH)Q#©:Ï(ŠŽ×”O ÇqfårÙÐÿCŸO¬ú<#‘4f&“áñNDàýbïóKâð…ÕM.mÔé¾R«ÕØ~±çx¿ú!Ïî×TSÌߺõé 3ç ßlk×#~ø…0 yt{)sz,@ ÒF!\»Î­këÜÉ ^½}ÏÐ4µ°×ë1v»}d > áLòÚ½‚{––Ø n0™øP82hµZúv•ú¯ûöV7®ò\l1ùpn%ËåÃZ8 þŸ`ýü~.#W–¹¸–Å?ð¹ wE%¤ÑhèÙS¨^<¸{“žç1N‘²¢cçr9ŠÅâ¿ lÛÆu]J¥Õj•|>ÏqŒF#,Ë¢R©P¯×QF² £Äd3!ÍfÓè÷ûñ Û§ÙétŒn·«4Ïþ5þ6\0ôðäÚsIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/text.png0000644000175000017500000000051412233761324023507 0ustar mathieumathieu‰PNG  IHDRµú7êgAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<ÞIDATxeÊ1nA…áoLÎ@TÐQ€š4œ‚s!AÁ‰JGI7â™ÇhµñúýåûJ”NÝs¸­¯é ¼¸ÙM­æ7yûÆc›á|jWù3÷+?ócïy·Šóš}þf?ú]¶\ç*ï‰2:«›nGÓÜkÀÉK—'ÀÆ¢ª®ºP\šT·êŒºWÜœ2ßMÖà“:jsÑ]¬Á3ËDGÖ೦꣆îùÂw¢ÑhÕ¸u;MXxpy àiiÎÚq°Z­GãããÔØØMæçç[‘H¤‡iǶTD^Öáb ö àÖó÷`6›ŒFcQ§Óµ „óx×J¸ä‡µ\Ù·ÁÜë˜ÚÜ€óë%@˜F8¯R©„`vv¶Šp“Þ[í,ÂÚÉMx|rVÚ—`åãÈuf@«ÕÒJ¥2+—Ë«„  vY°¶0::ÊÈd2zdd¤C®z½Þ,&]NížÂÒ€Åj R¿ÝO@*•¾E8;<‰DÅÁÁA²„i„)Lú­„kS€|&“ Ã.&ýëQ+ÕÒ^꯶¯ös͹~îx¦ïxª/ òùü5„@¯×÷4M%¬-à€Ëåú¾µZ]W(=LºÌö~‡0p8œÖ~~í` ¯A!2IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/html.png0000644000175000017500000000103312233761324023464 0ustar mathieumathieu‰PNG  IHDRóÿaâIDATx“OkAÆÕƒõ¨Ô›'õ)x-~…Òh)ÅBŒôd+Šž¼øT’C´¨¨Øª`‹R+xöГ/zQCº»Ù]w7û³õqÞ’¦b?ûÌóËÌ›Ù}ù9")I&þÃ1ÉÕë”Ò4õz½ÞNQØ ™£V«ÝQ’]‚ *‡aˆ(оïÃu]˜¦ÉÃ0P¯×•äoy? hA’$ȲŒ¿‰ ày,ËbAÇ i4,xQNe ¨Ðív!„:u”àÐxirñ…ùµ‡ÕMK›¶Ÿ¨£Ø¶Í;Ñu}Ppâæç±³w¿4—Þ Tž³ ×ÞÛ¸¼nÁrc’ÐNxŽã@ NÞúVžyi&‹*+hNÊ¡îf¸øÊ=Ÿ]í`}Ë¡ãÐLX¤Ó+†ãòS­øô=¤@ÑlE˜y¦ãêkçl#ŒR’0JpüÊ×òÔC-YxÑÁÜò64Á;àÌ?Ö@ϧ—ÛXûà¨áÒ}˜ÁøÜÖØ™ë›•'fk-/<ÒpiÕ@õ~ÂK‘ç9Aebø_8xøÔd¥ÞÂÔíž»×FµÑÆO_•û¨‹´y;÷ä_‚_ŒÈŽü‘œ–Š(¥,×ôö Ž’„¬#R¢ÎoÍʘÆsðëIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/source-cpp.png0000644000175000017500000000106012233761324024600 0ustar mathieumathieu‰PNG  IHDRóÿa÷IDATxÚ“ËkQÅ­‡Á»©K—uíc«T((HWJëJ¥ÐFŨtFnŒH[#¦„ ¾*è¦v!¶()é´Í<ã¼2™™$õô~&sÑ€8̹÷üæ;ß½³»0e˜†ÿ£ƒLûŸÈDQä´ÛíÝN§ƒ^bó$éžÃdn4‚ +×uaÛ6t]çUU!Ër’˜@ Â0DÇtçò}ŽãÀ0 h6› äóyá€ÙŸ‡F.}(ä–tä–4Ì4ñuÍ!7xžÓ4ÿ‰Ä{ròæFfª¤ÿ–ÞZxðÚ€ôJÇ­²†E,åîF±,‹WR«ÕRÀYY)æß[8~ùÓbB~öÎÀÄÓm˜v„ò‹C\¯—ËïG½^OÓ‹:n³Ò‡N=¼"–Wb1´z„ks ¯ÄñC\Û¤žP¤0õBÅtIÃá‘™‹"àNy“…jO­+n 8ÿH©d`ètQÙÂVÖ=ª€?û͘7i‡(R 86þcâúóÎÍV¼ï¶cæÉ.ܯbeÍ¥ðA³±ÉÍ"€oãÑÑÕÉ3¹_Þøccr£w7°ðF'#W«Õú[)@ÏÍfFÁ`CT€b±ˆÀÃ+ˆ¾²ãüé$ n¨Õj( #+‘G(ÿ óù8ò_-¸zÖ€ÕÕO|oY–ù*ô4I&“ˆÅVðÈçEêÛ–ž<…ËåËE@hÊ£T*ŒFã…P(„^¼Òé4t:Ün·€Ð:” T‡Ã1a2™ÖS©†E N§†`Òn· BRNΞ:a·Ïqã`0h4 ­V‹x<ö}€DÓ¨—.Ξ±XŽ¡ÃšèbX÷¼÷±}BƒÍÍŸ4XEÈ}¼¶ï÷Û™7VóN¼_Ió¯õ˜6è1¹{ ®ÈÍJ ÀFøèËÌóðÝØÇKË›,ñ†„Ø¢·ÎíÀë»:”¿ßá+(%_žÍ]ÞXÖg×õµ›×íð>XÀü¼áÛGðÁgÀ°©wîqo£/2 ±šfÉt1ÚÄÆ^ÆÚËÖv6ûõ<7íñDÁvÃõa{Î}Ý/Ï9e*†¦›ëEžB Êd2?r¹Üj>ŸÇÿ`ç$iR)Q 4<9™L"•J b±¢Ñ(Iü~?ìv»”õ/êQ ïÅ!œ÷¶¢÷ùAô,@çü~œmÆé™&ƒA¤Óið"‡ƒ$$(']:„B¡F¢´;Ñ}÷8®yz0äîÀè£Aì)‡þv [ê°çj9 6-‡©ŸÏ·&à­Î¼qÀûq > ž}váÆü˜ÜF´ÛZðåû ô–ZÚG<§}D"‘5Ÿ‘ÇͧCxøz “Ÿ.âÎâ0t¦J¬|û-×ÕühþD"A"!è¸ßHUt#;pä–žåÇ[Äå¹N˜tã§œF“idYF6›åBŽIõ¨؃U‡6k=̘~eÃÄû1˜=ý½€½;Á®˜ êFÚ¬µp½œ€{iOÞ9±üõ-$ï8z'`¼g@×ÔQÔ« ”ü— u\ƒb±Û¸M Aóp5ÍØp©ŠZÕöURÅš®í”¨>³Õ§¶Ð „ ð¯ã?ØŸ¿(‘U!ø#Q³¥øA)ÉìÙ}½ Á&.!ki¨xÎoÙ¬¢oE’'IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/rpm.png0000644000175000017500000000113612233761324023322 0ustar mathieumathieu‰PNG  IHDRóÿa%IDATx“OˆRQÆ«U#n£  Z¥‹rµËLÐ@DA-¢M‰›¡‰¤ e’¦D(‚…D¶Ê)³†hZÈЄ¡ùÿùç‰ÿ¿î¹àå=êÀÇîù~žóñî\¬ö0M1ÿ¡½LÛ„Oü`æV«%u»Ý~¯×Ã8±{øýþ%D 0v:~$ÍfƒÇãA¥RAµZåg.—ãl6‹@ CóV”JeÏÍfFÁ`CT€b±ˆÀÃ+ˆ¾²ãüé$ n¨Õj( #+‘G(ÿ óù8ò_-¸zÖ€ÕÕO|oY–ù*ô4I&“ˆÅVðÈçEêÛ–ž<…ËåËE@hÊ£T*ŒFã…P(„^¼Òé4t:Ün·€Ð:” T‡Ã1a2™ÖS©†E N§†`Òn· BRNΞ:a·Ïqã`0h4 ­V‹x<ö}€DÓ¨—.Ξ±XŽ¡ÃšèbX÷¼÷±}BƒÍÍŸ4XEÈ}¼¶ï÷Û™7VóN¼_Ió¯õ˜6è1¹{ ®ÈÍJ ÀFøèËÌóðÝØÇKË›,ñ†„Ø¢·ÎíÀë»:”¿ßá+(%_žÍ]ÞXÖg×õµ›×íð>XÀü¼áÛGðÁgÀ°©wîqo£/2 ±šfÉt1Ú¼Ä{Õ>ŽŸÞŇñåè¾~åB«ÕÊyt»ÝÀn·K‹Å‚¦I®×ëÉPÛ´ Æáp`<Ó‚×ëýNƒr¹ §Ó‰J¥BÏZ>ŸG2™äq:&(Df»­Né‹EÞ/…Jé“ ÓéÀb±°|>ŸS·Z­~.ŠûÙl–$µK„žYâóùh{Tü»@\—U*ÕmƒÁpÇ) ¦Ýn³$Ãårñ;ÊJFȧð¢R©Ü§l6Á‰‹3‚T*ÅÁ‰SºÍ߈—?Ø‘sY Knˆ€$šØ¥X|;¦p[p•$dÝÕü{ÚF^sIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/source-python.png0000644000175000017500000000062012233761324025340 0ustar mathieumathieu‰PNG  IHDRµú7êgAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<"IDATxmÑ=/CQÀñ§ŒF«&¾C›ûE¬"] £a CË€¤“DÒh‘&^ÒHP›ÐˆÅËै¢½/½·ý;=NÈ-ùßÜ“<ùåœáDz$&V[½Ò j}1·â7~sY˜7DËoT©éÞyãI‘ ‰ˆààá¨>©PVÀ¦JR‘àél>x&0‰%|=ðqõ3/”¹“!y²¼þ®Ù£ÌúßanãÈsÅ>%.ÙáœiƺÚ@‰3Ög†,E&6Ã7èá#“ÔqIqÇS„@šmnY¦®Zâ‚$ƒa`sÊ »Š¤ÈQ ‘Itƒ¦!¬(¦HUf¤S‰{µÀ,+Ç%Ö˜å¸9@ßÒQ‰‡—=J?êŒIù¦¢\†«÷r¨IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/encryption.png0000644000175000017500000000134112233761324024714 0ustar mathieumathieu‰PNG  IHDRóÿagAMA¯È7ŠétEXtSoftwareAdobe ImageReadyqÉe<sIDATxm‘ÁkkEÆ÷&Mš˜Ä¨ï¥¦/Õ‚‚ˆ»çBìBê΂"ºj—]Øeÿ -â¢kÿ± U ÚhbÓ’…’bÒÆ4É;3žCÀ¦Á>˜9çÎo¾37ðÞ3«ýýýœsnÓZûXü´ñßâÃ8Žw766þaF÷{{{¯Éáƒr¹¼R(ÃÙ3év»œ‹ôÁÖÖÖñ<@ç¤ùsµZ]¢ˆN§Ãp8Dj$“IJ¥ªz½~*µW···G!S!Å/–––V14›Í³Á`P‘uJ­ëF£ñ—‚%ݪŒRc*’L…g³YZ­rè½Z­ÖæNí·Ûív½R© ßþà¡Î,·éúœ9iMÀÈ7šöá½7¸øîØZãò:£MÞ刄7xã㩱|uüº>*¥Åï>wÄÚg?ITùè÷ Þ@rQ›` 6ðåúœAuúõ÷w#èMà‰¯¾!™~@äÀ-@¦ÞÁí5öæ¢ÑŸ¸ø–ÌJ Mfq NoŠèŸü(s>Añå7è|»‹wϲüæ:ýßOÐ#_y ï-ÞD³ƒTñÖP\{‰0õ‡X~¹Ê°LD±ºÂx˜ÆK¡þÙ¥‚z¿KŠ ŒqcÇd4/É¿Ño^LÇu 03 t£T+7½X!‘}ˆGÎ#ÃÍ%OVˤn¦ œŸDJÅÅú'ÈÃbNº)p è3êu1Ãùå' 9€Ž~þS2/$Réé/ ÀYˆFäG¬™àuï½â@4áì`SciCéâÙu Öêüb b©þr²²Í>â‹yIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/wordperfect.png0000644000175000017500000000155612233761324025056 0ustar mathieumathieu‰PNG  IHDRóÿa5IDATxÚUÑLÔuÇqvs“Û] á5©E]ljwÊÝñ#Ïóç 2hRJÇß;µ¦F(©¸£­­Qmš¹³ÑIƒê´BR(½8~– ›››9Ë5ÿèèÙgßï4ùãµïwßÏ÷óx¿¾Ÿo\ww7N§“ÄÄDP©TÌ{"íÂ<’RsѤ>Å\ÝbÔê9¸\.€¸G×ÒÒB0”‘øøxñ$ŽÏV“ÿê׬xý Öí½,u~H¡ÍÁØØ~¿ŸY€Á`Àãñ …(++“›Èˆ±–â—EÆY¶)HIéjb±’TÏC@£Ñˆzj¼^/­­­TUU±,Ç@¶uVÏ(6é"¹›Ž“ozŽ«—¹yã:?ööPöâfd 991QŽÉd"óÛÄ8ϲnG/HŒ•]è2Ì<ï"¯`+ŠÊQ©5 ’’"oNO×䊿ßù““_~ƒïÝc8êÎaÚú¹å"]äl¡žoV­V+›ˆD.055ÅÌÌŒ‚ÄnÐÕÙÉ®&qõ?c÷S²ë imV±ètÉ<¦Ò±ï½gÏõ188ˆh!¸?ý—øæ3ì=t‚"O¶ú ÝçIÒÛ 5m1O–6³Úæ¦èµ144Ìää$ÓÓÓ»ÍíØ-ÆÇ.òö ¥¾«Ü4z»,Ðç`~í4«¤Kd_¦ºªR í ŒÈ¿Ön·ÓØØü÷ß÷°á­(Ö7/ô?±B¼( óÌ–ÒóÊRAÇÉvÚÚÚ0//Àj]Éý{w¹s÷o6î¥`ÛO àFqøÅ\ý‹Œ•¬_çâóŸq*ü-ƒìoÜÃõ›PûþÖZq¶Ù@‘o›w‡ï–×ô°ÈâÈZŽ9ʧǎs¨¹™ššjzû¯ñRÃs>ôž¯ì HL·×É÷òËÖÓ8¥^\;#¸Gùè“£¸6¾‚µæI™Å0ni—7Ú<ýÖõ‹«ˆ7J¡h´².ŠÅ¥Ä7@EÃyL_`y£M¦]槦17Í‚véZ´KÖ Ñ.q¢dͬÌËëÙë嵄Çu2ðµ€V].‚àIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/ooo_impress.png0000644000175000017500000000103512233761324025060 0ustar mathieumathieu‰PNG  IHDRóÿaäIDATx“ikQ†«¿CÁÏRDH Zª©¶µÚ ÔJIcmµ¶XKQÄ(Eq!㯛d–;KfIÈ’ñõ¾·23¢¼ð|HnÎsî9“ 9!ÉH²C8%9×¥™N§Óì÷ûÑ`0Àÿç(—Ë_Ó’´ Ëâ0 Ñjµb<σëº0 CI4MC¥R‰%cáçàã=ï·à¿Û„÷z̓5¸ÏVálÛNÞË"¯RRÅŒµsâîÌÍ0úi>5%.Šq¯ÀÞÍCl/BlÌÁ(æ fÁhKçÐëõÐív)!‰ÀÙ_Óüòü¨ëíK0 TWkL}~òS@x›D`?ȃ‰\Ϋ‡rÞYè7g`í L-w–7 ,þ[ ¶.cX§ÇYœ&˜·.ÂX=}y Z~Å,êsÔe×ÚÌNãçäiŽ&üùãùå/ŒH ˆÌ„\P‹£Ëß|Ó‚“”Ð:"Öü3WØ]˽ ÈIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/audio.png0000644000175000017500000000113612233761324023625 0ustar mathieumathieu‰PNG  IHDRóÿa%IDATx’]kÓPÆuŸCÁïPÙçðrú¼A†a XÑ Ùle0P+á«°‹VÐΡ•ºÕºvÝl±ëÒ—&mšæ=Íy<ùKÓé¶ð»hNžßyÎÿä‚ÿ.pBœÉÿp‰3äNB–e)®ëzƒÁgÁ׉DæÉ?‚I?¬it]èõzèv»h6›$©×ëˆF£d>ûIbf#¯aåsñ´„w™6„rý~Š¢ Õj‘À0 ø›Äb±?’ÕmsâõW-ßê±_’ƒRÓFKwQiš¯üD*+ò*Úíö©#ÑLxx*¾¥0Õô è IACÃd°`9î, ÈätI’¨‰(Š#§*-›Ô:(šKh÷ PUY-Ðß O/î²Ý²‚‚hA8Ò‘-J¸:û/’EÚ•#Að!]¹>?Ipk!‹ó_ð0žÃfŸÅ)ÿ‡?dŒ‰7 %—yUÝ_'ÌßíóLè¤à¢/!ëx„üÌo`¼íâu|ö®IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/php.png0000644000175000017500000000073712233761324023321 0ustar mathieumathieu‰PNG  IHDRóÿa¦IDATxÚ“KKQ€{,ú´é¶ªMûmÛ”D¶­MJkK#ôØdi‹lÓ6‹ZY;IÜÌè¤ÌËQÇ×éž Wæš’ÂÇÏãóÞ3×> Ï8ÁApþÃ$a€õÙŽJ¥¢ÖjµF½^‡N<?“´ œØ\,Á4Íš¦¢(Ëå¨D’$ƒ- kîG”Ëe°, WŠa ª*ȲL¥R ðGA *pÎlLÍGï>`×…}Ï=,¯„(;î\‡Ɉ@vȉ΄ -¹„,f$?E\ÿ¾yQÌDN°‡ÉÄkš6ÆbIr^=sq¬‹Fß P(p ßélÛNÞË"¯RRÅŒµsâîÌÍ0úi>5%.Šq¯ÀÞÍCl/BlÌÁ(æ fÁhKçÐëõÐív)!‰ÀÙ_Óüòü¨ëíK0 TWkL}~òS@x›D`?ȃ‰\Ϋ‡rÞYè7g`í L-w–7 ,þ[ ¶.cX§ÇYœ&˜·.ÂX=}y Z~Å,êsÔe×ÚÌNãçäiŽ&üùãùå/ŒH ˆÌ„\P‹£Ëß|Ó‚“”Ð:"Öü3WØ]˽ ÈIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/image.png0000644000175000017500000000100012233761324023574 0ustar mathieumathieu‰PNG  IHDRóÿaÇIDATxÚ¥“MKQ†ý[•®¥¸)•€®Šº‘”¢ÖÒøÓ…¢«P¥-Õ&q:WM“Eª…ÒŠÝwQ”ÌX­‰1&ó3C1y{æ"CC¢.²x. ÷ÌsÞ{îL€†àKϘ8ïyɲí^Ak¨C_5­ƒ‚Ö5",¸Ï+v‘’åŠaš0‹ B'TŽ Å´Q0l\r,dÏEÕ8uÃD¯?ˆÑ÷L¬„àûÀà[Mbüc“¡$¦#ŸvÑ?½€œn¡ÍË4Wðb:ý¡6Rbò¢’¨\BôØÂÖoÛ'±óç³ì ²jEæ›ñtñ³òmðšsµD±Zàœ7N &]!æt–Š”F;2±N°C›G*^‡wQеÅ´ð,øï2x³Šà÷cÌîýÀLò –¾þÄØr™Bšn÷Tâ Î' „¡µTO&Bµç®ó4YÏÌ:^l¤ï‚פë .µú"Zž-Oý¼àxM:_Bëàÿ ¸ „_Ù2Q¹‡2 ¬jÁ#¯p’Ë+ÐhšiCåXPéY©ÁFŽÊLuGĹÎ!öÍ9™ï…þÞYtðr,3‰o:+IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/xml.png0000644000175000017500000000103312233761324023320 0ustar mathieumathieu‰PNG  IHDRóÿaâIDATx“OkAÆÕƒõ¨Ô›'õ)x-~…Òh)ÅBŒôd+Šž¼øT’C´¨¨Øª`‹R+xöГ/zQCº»Ù]w7û³õqÞ’¦b?ûÌóËÌ›Ù}ù9")I&þÃ1ÉÕë”Ò4õz½ÞNQØ ™£V«ÝQ’]‚ *‡aˆ(оïÃu]˜¦ÉÃ0P¯×•äoy? hA’$ȲŒ¿‰ ày,ËbAÇ i4,xQNe ¨Ðív!„:u”àÐxirñ…ùµ‡ÕMK›¶Ÿ¨£Ø¶Í;Ñu}Ppâæç±³w¿4—Þ Tž³ ×ÞÛ¸¼nÁrc’ÐNxŽã@ NÞúVžyi&‹*+hNÊ¡îf¸øÊ=Ÿ]í`}Ë¡ãÐLX¤Ó+†ãòS­øô=¤@ÑlE˜y¦ãêkçl#ŒR’0JpüÊ×òÔC-YxÑÁÜò64Á;àÌ?Ö@ϧ—ÛXûà¨áÒ}˜ÁøÜÖØ™ë›•'fk-/<ÒpiÕ@õ~ÂK‘ç9Aebø_8xøÔd¥ÞÂÔíž»×FµÑÆO_•û¨‹´y;÷ä_‚_ŒÈŽü‘œ–Š(¥,×ôö Ž’„¬#R¢ÎoÍʘÆsðëIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/ooo_calc.png0000644000175000017500000000113312233761324024277 0ustar mathieumathieu‰PNG  IHDRóÿa"IDATx“íKSa‡­?¢OAY&aàÖT\5Q$KZF-ˆ”ŠæK’©Q9–Z E‹%²³d[e¥3rÄ „¨( ŠÂ/Ñ·>ÄÆ^ÆÚËÖv6ûõ<7íñDÁvÃõa{Î}Ý/Ï9e*†¦›ëEžB Êd2?r¹Üj>ŸÇÿ`ç$iR)Q 4<9™L"•J b±¢Ñ(Iü~?ìv»”õ/êQ ïÅ!œ÷¶¢÷ùAô,@çü~œmÆé™&ƒA¤Óið"‡ƒ$$(']:„B¡F¢´;Ñ}÷8®yz0äîÀè£Aì)‡þv [ê°çj9 6-‡©ŸÏ·&à­Î¼qÀûq > ž}váÆü˜ÜF´ÛZðåû ô–ZÚG<§}D"‘5Ÿ‘ÇͧCxøz “Ÿ.âÎâ0t¦J¬|û-×ÕühþD"A"!è¸ßHUt#;pä–žåÇ[Äå¹N˜tã§œF“idYF6›åBŽIõ¨؃U‡6k=̘~eÃÄû1˜=ý½€½;Á®˜ êFÚ¬µp½œ€{iOÞ9±üõ-$ï8z'`¼g@×ÔQÔ« ”ü— u\ƒb±Û¸M Aóp5ÍØp©ŠZÕöURÅš®í”¨>³Õ§¶Ð „ ð¯ã?ØŸ¿(‘U!ø#Q³¥øA)ÉìÙ}½ Á&.!ki¨xÎoÙ¬¢oE’'IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/msword.png0000644000175000017500000000116512233761324024041 0ustar mathieumathieu‰PNG  IHDRóÿa"ðÎsð-o¡d½µÀÁég$¢këôôþ+• ‚skTp}!ë=λ Ü„ž †î$ñõ{ŽÑ8šÍ&dY¦Cpv<Æ*Š÷ Ût¯ÞýÄÔ“~/Þþ/Jèó¬1h5†àôH”mi &Hõ†ŠI"pÝÞD¶Ð€X’a‰Ñ 4ø/ÁW4“çve¢ŽÞÄ6iÁâŒÒ`3†àÔ•™“öÕÔ Ëûþ±8ìÞ8)9†^’ÕæŽÂ:ƒuðmÁŒ!Øûé/ä£F@›´ Ážä8PM_h'˜ì­ÐÛkÕ%ÔÚzÌoKiÌñX§VIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mime/compressed.png0000644000175000017500000000125412233761324024671 0ustar mathieumathieu‰PNG  IHDR‰ sIDATxÚ½”IhQ†«=yV‹< Æ–h#ÔåžôÒC‚‡AÄ‹Ü0‰6ûÒ¤f©MCµ´4UÔCÀTÐjJ+˜Ø6Éd™$&“ÉßIÁÄ,àòàã ¼yßûçgfºüUþ½Œ¡· »›;Š …·r¹\­T*ødz½^S“¶öRY6›Ïó¤Ói¤R)D£QAÊ0L´Nè¾»»ß3Ó“~4w&“V«v;Å ‡Ã‹en÷ Äb1A˜Ëå@5›Í‚´Aè¹/ ~ú0@6^‚Z}ƒ ƒZ%ƒJq“\« T*r„B¡† èS5½.IŽËƒãN£?GæÈ&¥xõPŠ`(ˆ ‹&³Éd,Ë IÃápsáòÂa>„Ï·}ƒTô8ç §œv:¡ËL&#ô™H$Z%ì#ÝŸ?*`ÅàIÂÅ9)ÖÖ×a»g…Þ¨¡½ ýqGÅ­JøX\úKÂd¤GH¸º¶ Ûätz• +‹t¦´º–¸ì˜H˜ð~ÒÑ>ä’ýBÂÀ×l6t:òù<RèûØ\è™Úkõ>ó¾'‡òËOàK‚—ʵ áÙóLO[ VËQ*•(TÖZ8;صÅu«{Ûžî­Çü_>cLk‚\©V«„\> ƒá6ÆîŒ"Œ#’*ÖÄÍ…26ÑE&Êâ‚3ƒkN?–Þ¾‘ÈÎ ŸÄÙ‹×q~2Ù| äk¢t& ±¹ï#¦.;ðüXYùˆ÷¾%x^{12Ä•†ŠjTë…õÒ¤pžÞH@ªä^ŽþPZ wR)=µCDtÏÿúÁþ9?¼iZŸ ,‚žIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/settings-active.png0000644000175000017500000000102712233761325024706 0ustar mathieumathieu‰PNG  IHDRÄ´l;ÞIDATxcøÿÿ?M0˜˜xÄVâ~ ¾f#Äçñz N€‰122"c<# ø•K.5Ù > «›ˆÚ’cp²!m[Ýé÷0~Ó—ç@C€˜ƒƒ€Ø‰ýnßîþ^T–§Èù¤\˜cº0Æ´è,(¸°¼Ÿë ¦[Ÿ¯YáxŸáÞruØ V†ãCtÅ‘ú; aYÄ Í=û¼¾ãQ'Æ>iòÈŠËØ]‡*¶@ŽØÂ™6AÈê2zÍÃÔá‰<„×8Õ@…ØRMÿAïÇÈ)DV?[ä% ’[ûË/*ÔÀ‘Ï£«ï?ä}Ýà˜$/*`Ï•uhi;Ù`\1í©œ…f¨Ìµè”r€g „1(6AŠ]t ;=V€‚ ÷Ñ])$ÁÕÒ Åè‘GFFA¸9kã2x?©¹Î.D±PY¡€œ:@9 =·2(RA4Z²”ÀëâÔS½æ®Ïü³µ6€ÂLLŽ'«o¿×W˜!Pñ P¤vìpSJ–‹MPa 7”>a+ê M€‰C]Yâã BØÀ5V¥ša …>¡Ä!„a®Sa4qœÓ]ø™BÝŒ8ŽIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/required.png0000644000175000017500000000073312233761325023420 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ /0©µÌ_IDATxc =ÐˆÐø„èâL¦´‚L<ƒ™¾(ƒ(d`‰‘VFȲÀª lXåyd9ØØ<6Í öö߸ìo?€È3ÃÅ0Gr008½àágd¸ÏÃÅÃÀÆ/|÷þ)4«wv?ÀÅ ÌÀ¯ äIa.§{¿ ¹Q&B“óÍÖœ Ü œ ’õöçkš2Po1B(ýÿ B ÜpGÿaøÊðHÿc¸Èˆä>vFŒaøÏðÕ×YÇ>ýadØ$Æ PÈ~ÃïÕ>–ÃÈVÿ`ˆÒ}•…jµØ´e—>0®@ò ã ­/7³@æÛ€Š˜o€¤nfi}*C ž~n¾gL &¬¯gøÎ`uÓæïó~Œ˜qߣžzà^ÂÁt^ïúÝ™¯¥X-Ø•÷0`‚ÿ ÿÊZ]þ»ü/kòcþ«àI=ÿ#þƒ@ÃàôSdî[?Z—IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/shell.png0000644000175000017500000000054112233761325022704 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ /1Þ²ü€åIDATxc 020h`°'¨î P¡Å¥ãò?ñ©zÈ~Ï’…•Aò¡Ì3| I=*‚O_=ù‡SÃ'>çÃ_ŽdA0ÿc÷-Ü\B`ಠÍHXá-“ÿ²˜~F2B¢ð'£>ó~ì:§ ”?túØf$ñ½ºÌÂß:_†‡ïÿ"t  „²¿Œö¥¢‚¯ßìfFvÍ $å"ÿó³2²¹ Š2¼fx»á×®ßÿ?>Zs)è`â¥%va†· ?~ƒÒÀÇ‹q}‡ŸIÕêB¹ ÊIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/block.png0000644000175000017500000000114712233761325022672 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®Îé pHYs ‰ ‰£ÒêtIMEÜ /30¼¬bKGDÿ‡Ì¿ëIDATµÁMHšqðßsICÐÿyŒò…œÏã“>>ë’4Ãæ`ìR ¶µÁ”`1´­âR‚N{c0!„z Ê ‹Ú¡Á.)LJ6èPôœzøÎÉjÑi°Ï‡þIëOðyÖb->ߟèct#Nˆé# ¥®ÔEcCº%Ž®á„¢ÊQ¡r~úsïÇÞùi¡¢9!‰£«¬1‘òYíÕ õŽ÷ÑèÓ€úrî¬)‹°ÆèÏœºzü-»Úž~{1½J=þxëkV=vê<#“'éEnS·?€ ÃÔ6„Çö'r›^Œ&ɤl+Æ÷pu÷¨£·Ûö…ûó°b(Ûd’´@ã®Ãš¥?øbüµY?Mˆ†¤‘É«ùêð™~ã„÷"öŸPÞÁæ«{52…ʲ1ØEÃümøð\¢ŽÁ.Ù•É4»îƒ4E` ¥…xê¦|x¶N¦Ý7Šno –žqKPNOÉì,ö¦¢ï¾&XjK†mcmf,#§âq9=–Y›±mÈHmÑ¥‹ØdÕGs)•[Î$3ÉÜòRÊÑô`²z£«À…•¿î†Ëp¸\†~}eÇ(€£¿Cô°/E*ª¦j‘J¼tXCÝ äÑB y$Àè¿ú˜4Û”ÀÐNáIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/website.png0000644000175000017500000000102712233761325023237 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®Îé pHYs ‰ ‰£ÒêtIMEÜ .9ÉrEóbKGDÿ‡Ì¿›IDATxc  P9 rZuµêMµ9jÏ4¦jüÒø@Zü_¸þùÒ¦-æ”ìü?Õù–íThñªÐö¿é9eûÕç[Öœåv:ê<2 ¸k‹P˜¿yÎÜ…ËfÎZ¼báô#k.­?¶výªPX¶ Iaâ¢ÊâŠâÒây‰mÉVó̧ÛMhOž—XZ\ „‰‹P–ÏJr©³˜ýdòÚ I ÿzÔÍJ*,.ÇTXZØákþk}ÿá¥Þ;šß›ÿêð--ÄPXZÜžîÑd÷ÿ˜Ã%ýsöÿþ{4µ§—b*lŒŽX`ÿß6LÑ]s¡åG ÂˆÑXf%Nê³ÿ¯ÿËjEüêÒýõûÝžNêËJÄ¢0'_dÀY'`;îýß~£5âоȜüRLÏ„Ý__|ÀãÙ_V“Ú; üÂò±ù:¿¸ À/roÏ‹[OÝhÝ\ç™W‡®ÐkWÐ$ÿI“<&:vY¶Z·q—ûD XÐ$¯]p…ÞìÿÛ€¡Å38´€ŠÙÿ÷¾UøÿÀüà-7®µ2]Ï’æIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/buttonbar-bg.png0000644000175000017500000000015312233761325024162 0ustar mathieumathieu‰PNG  IHDRb÷ã2IDATxcøõë#ÿáÿÿÑ0Pì„ýU¤†a¬òÿþý³Ï]¹ 8gS7yIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/sql.png0000644000175000017500000000117512233761325022400 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®Îé pHYs ‰ ‰£ÒêtIMEÜ /•¶(ÇbKGDÿ‡Ì¿IDATx}ÐÝKSaðÇkÿivÓ˶ÊÊvÎÎÜÜÎ᜵(ÝX/eeBx5ºˆº º0C*bvá20ª±R¢…/kÓ¹Ù:ÈÒ‹jqÊ!aeHÄüöt¤ vØ÷Ë?~|x.~¤\66™Ó¢)³ÞW–™oGÝÇîannÌå¨õµ»p(Ö})÷œå©¶ZSiØ\í5¯j«ÞoàªÖjË nézBp»+n_¤S˦…X”–‹½çøÈÖ¯[`Þ°BÞòÞØCˆ1bQ¥WÖ‰z¸`‡m¥N›Xì¸FÈ…AXÕxŒ-8УРôñZwa<Ø{‡åÐ¥„K­]fîgÐ@aߘø9€à¿îFprª“T „w¿~BA€ü‰sàòãÔó´Ò?N>ÌÊS±‰Ö¨û$Y åäop`Àü°œyfÞ¶Lgøn’ÒðyxxV­¸r:¬Ÿ%:F›Ó^úgošr'RñÉl»¬§숆õt œ¹ë³­Wu  n𨇓–ÎZéyJÓ“”¾y!AÔ*a'ü²Ü©=Ñ+CIy$×›êNÜKg^Ä&NEÅ´ ûGÞ5ÃÎ2E ¼½?ü"ÚoèÀïÓgGdƒÓþùÆ¢_=¨4åЦQ‰óxŸPÄ[<Á-xKÕo¨Gy ›ÿIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/lhand.png0000644000175000017500000000070612233761325022666 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®Îé pHYs ‰ ‰£ÒêtIMEÜ -0R“ÍbKGDÿ‡Ì¿JIDATxc4@5Dõ®ÚEiÊ4Uõ»\0þ¨õC¿âÙ–6Ÿ‚÷}x\µÏ—bQYQYq™.ƒÞ=æÿMóÿ7~zR»×ô½ÖuO•d• *ÀŠÔ|5njÿ‡@Óÿvÿ >20üçÿ_÷ù±ÝS—¦g-ÿ[þ+Ô¿R°}çé]P¸ûôµ‹[þóÙÝ[ê~Ñõ¿-D¡ýõØ¥%E%EEë"¾yþ÷ø¯ síÝ”¥¾}a ×mv¸fñßâ¿ñݳr@!ì f\zóúõË™‡,ÿ¥•š™àRQ,ö_âJŽý¿€‰ñÑ8"»]wÝ™ž+Èá«›X¾+DÙ[l_»MUÌ“ÉPÊÐØ¢ûßþÞ¾N¿#Þ˜ wu8¼7þo†V÷ùsí¿Î«5›Nl<¦ð¿ÞÿwÿaàÖÿ¸ÿÌ@1Áÿÿ4¥D¯»R¯¥× IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/info.png0000644000175000017500000000062412233761325022532 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ -7ç;7IDATxc 0Â*) 9 þ2üG’úÏÈpû_Ï£H 5ü9ÖªbüŽlë߈?_×0Ý,ñX ‚º–ÜÇy_ÿÿû…óiX/Ðäo - &éRÁ7~Vøõ“ýû&6f˜Bv6†›NÌ È ‹°p¥Nä„ZÍÅð‘Gèç…b_˜ "4‘‹ñ'”Í¡øÞ3Ç$0¿"^ÿÀ' ¹ÙX˜ˆR¨þŠï#Q o3|eÁ¯*ýC”‰‹(…"ß™‰R(øþV…ÿø¿¢¸ñ†àGLe”_&?@1Ñïõvå'@3ÿ 0ÂÍúùKòt깨VDü¿ð^ø?ÿ/ú/À@3»|aŸs“EˆIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/button-active-bg.png0000644000175000017500000000015712233761325024752 0ustar mathieumathieu‰PNG  IHDR™/ZPLTE¤¤¤ÆÆÆÐÐÐÖÖÖØØØÔÔÔËËË¿¿ÀF&—IDAT[ca`€B¢!X=båƒãÔIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/save.png0000644000175000017500000000062112233761325022532 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ --僩IDATxc hôküÃI¨â,è U¿€i^¥ø²0q3p1|g`fBs1…±ˆbtPȈ`©ígP`dàåæ`øÁðúë§7ÿ^þ·½ý ÅÄÿ Kß‹ ˳sCøìÜÂò"bs^ÝB·šñ¿I]ÝeÎ? ì e  \ÿŠÏÚ¶0þÂp#ãe÷¦ÐcßÀ®a†¤û¡ ~Æ“Xœqçù[ÿ¯Ùƒ\ùPÉfÆux|÷·3ü¸÷ÿ S¿¦`ñµ|ƒL€‹ÁTý³ßS׿=ïv‚ýgDÑ+Äð¡è9ÇÁsŒ`7“ZìŠÀÍòò#®Û6pÏpãpñW†CnŒ7þÿO0‰NùŒìO)5æb9IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/show_panel.png0000644000175000017500000000057312233761325023741 0ustar mathieumathieu‰PNG  IHDR‘h6BIDATxcl¨-a °±ŽŽ'‘ª¯\ÙÎa=}…‡¢ÿþ311‚Hff6° ÁaNÊjBŒŒŒLLL@ríª…õMÝ.\€‹üÿÿŸ Ö¬\µ™™YOOȘ:u*D¤¹¹¢Âmjj‚°Aà¢ß¿ýàä∠„h€·ª®Hž;}ëËço<¼\Q›–,Y7«µµâ<„ˆjVV–‹çî|xÿY@÷Î;@Euÿþý’Pàªï»aCÕÕÕ'uwwÃ4`€ŠÆØ7b†Bƒµ=(ˆ:êU=íçç}}} @^¾|)!!T ôë› *ð… ËÛ·o!¢ÁJKK$Ä’ &ÀC qÕp7Lš4 Ȇۀ]L!‚¬$'oŽ ‹‚&­IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/0000755000175000017500000000000012262230550023060 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/punk.png0000644000175000017500000000060712233761321024551 0ustar mathieumathieu‰PNG  IHDR ex¥PLTEÿÿÿÆ.†êJ¨º,·,ã1™ˆ'a®+xH 8ë`±ïv¾|&X&"Ú0’µ0u0XP!<êˆÀ&ß0—A,M4”"dpOÂ3ˆº1‚ mM›$iv"T!_ÕC™9)) / ?22 "ès¹Ým°Üm¯E"7\AK5!ar!Q`$RtRNS@æØfIDATxeEÂ@¿ŒOww¸ÿÑ`òÈ&Ô®^oª¡„(!‚ ²Ú£-ý4–1½_fJ© Åíñõô¹é™yÚÝå)ÍϾbò& ƒmŸo§^~ECì¬ûÖ±¹Rh’°«¥‹¢È± ;iô;çxìQ€•3?bæÂ¿¤-sÄÂ"¦ÿ¾zíßpMÚðë×IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/winktongue.png0000644000175000017500000000055412233761321025767 0ustar mathieumathieu‰PNG  IHDR ex“PLTEÿÿÿ§ã1’Æ.¼ë`Š·,ƒ®+iˆ'µêJ;H Èïv#& Ú0_|&º,±è=µHþfl‡7»ê`Èêˆþfж+dˆO¤ß0Vq#}«&¤ÔC Ä-MiÎR    M%8_# Ábi›tRNS@æØf‡IDATx^]OÅÃ0 ‹í0´33ïÿ¿nIº^¢›¬'0Ë rD¬%¥T†þ´˜ *jé =x¬óÁˆf±>ïu(L”îšùhÌC𨈑DÐÜZË5 $æZ>i¹+õä÷ßÁáþ¼n’?å#ônÃécósþué/±¿Û÷yoOy_¹¿üï,^”tAtˆIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/indifferent.png0000644000175000017500000000036012233761321026065 0ustar mathieumathieu‰PNG  IHDR‘ß]ÁbKGDª#2 pHYsHHFÉk>”IDATx…‘± à D‘Òev`w Ae¹Jï†ÖxTÙîr:¡“\}½æÄû'˜ŒŒ‚Là5«Š†.ªG–ܰãcvlk`Ƀ‹'†8™ HW5™‚I;Tjv›š‰Ü‚I;4ö©;ãÀ¤øŠ›yp­ƒº<ôï¡KÔöÙo$óòÙ¾ùÀ…). ß<øîàÕ‚7þØ’"^G‘NIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/hippie.png0000644000175000017500000000053712233761321025054 0ustar mathieumathieu‰PNG  IHDR ex‡PLTEÿÿÿÕþ³ ý»<ˆZø¤ Â~:&þÄV·zÅ… ížÆ‚zRQ9 vN=)ã f†_^B öÊnˆXÏ‹Ÿk–a›hÓ¦pʉx\(—ftY'ô¼S 'ú°ÍÁ-tRNS@æØf†IDATx^eW1 ã’ž­ôÞ;÷?& BZÞߨ–æYå0[fõ {cÔž?Ø8xÇ5Üa ¥1¦„:æËÕðÞŽ¦Õ6;Y§_ª+Ž`&·Ëõ4ˆ¬¬ð“Â" Û¼G ¡c¹× $"<&Ð"ðîöˆX¤­óÿœkñ÷úý÷ïÿ÷¤ˆ§ÊÛÚIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/clown.png0000644000175000017500000000112712233761321024714 0ustar mathieumathieu‰PNG  IHDR®ED… PLTEÿÿÿPPPáááÔÔÔÇÇÇÁÁÁÍ7ˆ,‹‹‹°°°  Â– ÂÂÂÁÂÁºººq‰nŸŸŸºÂ¹†††ÀÇ¿|{NNN$$$†Ž„ÐÎÎÎYÍÍÎÎÎÎ ÐÏ¥ÑÓ11Ó33Ô66Õ@@×MMØUUÙbbÚffÛllÛ™™Ü¨¨Ý´´Ê¥¥ âXÖÊÊÊÉÉÉÒÅÅżV½½½¼¼¼³³³¿§§§¹ššš¯“…yyynnnlllhhhdddæ¶YÈ[ &)%ÍØÿã™tRNS@æØfåIDATxÚMS¶Q “\·ÆÆ³mÛ¶µÿ]¼4>¦¾Rɉ eóªzØ; ÞÄÎIȼe¶þœñ¸‘øÄåÓK˜°ÏæâuªˆÎ3Æ`Ó¶‰9 cr®í—ü¶ËCìùrµ®”ªWËùØ©Q<Ú–RnýDžgÍ?½Pbëï´?¡›*P¡(þÝÿûß ¿0 Æ.gIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/shout.png0000644000175000017500000000055612233761321024741 0ustar mathieumathieu‰PNG  IHDR exPLTEÿÿÿèg ËZ ÿužJÿ‡4(P-ÿ¢eÿÿr Ö] §J ñ€1ÿ–LúFÚ] ?Ût-&ÿ­r¸P ÊX  ×i((Óg õ: :®M ú„3•÷‰:tRNS@æØfIDATx^]E1 Cc; ƒEf†û¯Î¦Ú}ëÉ–Y¢FdƒÐHι4øÃ.@Rè°`^á¡Ï`tý¨z1`¢-Á_ˆ¢¥‰ 9Ed‰”ŽL'nìÔ6‰uöëíÆÉÏùõÙ9÷Ú§|Þÿ¼¹Öµ¦Ü_¢ßôC¡ù‘ˆ¶³Œ¥ÿ»ªJÿÿÿ¾$sÖ\.8IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/hippiegrin.png0000644000175000017500000000062412233761321025731 0ustar mathieumathieu‰PNG  IHDR ex±PLTEÿÿÿÕ ·zˆZÂ~:&ÿø¤ý»<Ƃ힯vþÄVÍŠúzR'ú°Q9 þ³ ã f†_^B öÊnˆXɇ=)–a·{x\(¶ztY'ô¼S   ) (:vNÑŒõ Ï‹AñHìtRNS@æØf‘IDATx^eUA C'^„233ÃýÖ,©Rûþ[²Ã29"+A-…Rc!)*Á\ºàYk=p³ÃªÿvkvxÑ„ì÷—°‚ ØÖr¾˜vš2Nºê½À©“æ©,âψ|”pxÜLlâû$hu]ŸŒ1ç]¤tÞ?ØSz;¦þrßÌ÷Ó}ÿûÿû½ cv®ÉMIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/grin.png0000644000175000017500000000050212233761321024525 0ustar mathieumathieu‰PNG  IHDR exlPLTEÿÿÿ”.Æ+®‡,·f'ˆ´Jê¼`ë: HÅvï"&¢0Ú§1ãÿ,¿_&|z&£ˆ,º% Œ+»‘-Â'© (ªÊˆê+&,‘£tRNS@æØf„IDATx^eG1C-À½LKïåþwLl'›D»H¨&æÈ¬¾boDÄxþ਩JÜq¦”sN4·×XkÒþmJ€sHdX±P¶.„àl&a;Ÿ;Çê?Ðu„ëþæz«xY‘áz¿¬K)Ïeоçowާ–ßû¦©öûïÿûß tÅ^­'ñIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/worried.png0000644000175000017500000000047412233761321025251 0ustar mathieumathieu‰PNG  IHDR excPLTEÿÿÿ)=w·PˆÅh˜ÍŒ±Ù9oªH‚Â6i¢,Uƒx£Ò3N!2<\d“ÆPuž<]^¤:q­)Oz  0Rw–·Ü Hqž9Z}El—Fn™ §èžGtRNS@æØf‡IDATx^eÇÃ@CW°½¸·ôüÿW{ãK¢ ó†‘êu )xïCÂgÛôÔ7vFÅq.oE&„“¥©tº+Ù$ë@nY‡8¬‹£OÜFcLl™K5W-u0XP!< êˆÀ&ß0—A,µHpOè=£mMv"Tr!Q$ÕC™9)) ?2 ès¹Ým°Üm¯E"7ÎRß0–$M4\A+ã2tRNS@æØfŸIDATxÚeEÃ@ WZ4C˜™™Éáÿÿ)kW|Iú6ÒT©E=D’‚JpÎ…Âo´Ä0+Ü_”RœêCçhXxޤ”“^Ñt{V Svs$È¡úÛÃiê¿#ñ8t×}ûØ\Qà^¼§KÛu][ê¬ûŒr­›‹B_T èxašý+0•èèûõó —q,Lýò•[Vûýûÿþ÷ªg Ó+õÌÍIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/angel.png0000644000175000017500000000045012233761321024656 0ustar mathieumathieu‰PNG  IHDR®ED…NPLTEÿÿÿÇÇÇáááPPPÐÐÐëëëÁÁÁ°°°‹‹‹ÔÔÔõõõÂÂÂ$$$ ¬¬¬ººº¸¸¸úúú›››”””ýÿÉ#% tRNS@æØfˆIDATx^eWÃ0DY@µ¸¥ßÿ¢1J2ÎÈïK«§Õ²ø:¨=þ¬G'ËŸ¬šâ“~oæØyî6OìJ)ާl ˆÀAwØÞ{ÀqªT#ñ­5/…c¥eëùÚó¶ŒÞúXeïK„õIà Yñú™ÿ„q·ùã~ãþãÿÞy¾ ÐÐ¥]IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/annoyed.png0000644000175000017500000000046412233761321025232 0ustar mathieumathieu‰PNG  IHDR ex]PLTE\|£˜¸Ú:Nfj’¾Rr’wŸÎBYu²ÊâHd€ )9I†ªÒ2BVÒâîB>BºÎæÊÚêršÊ&2B¢¾ÞRRRJJJ:::F^~(4æîö.:JG ŸYtRNS@æØf…IDATx^5ŽWÄPÃ0¼^Ò³µÜÿ˜KÈD2Œ ÐZï}ÿ\I]ÎÙš˜º˜9¼]· Uö1FÏÕí0Ý6®£. x(ʱŽÀ:­@äÜÍe™¾Ó"ê?PR/:/rÎ)ùáV–r=ƒ©kÿü˜­dÁu¿‘‘Òñ_m¦FpÚÐU —ЖIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/angelwink.png0000644000175000017500000000051012233761321025544 0ustar mathieumathieu‰PNG  IHDR®ED…iPLTEÿÿÿáááÇÇÇëëë°°°‹‹‹PPPÔÔÔÁÁÁ ÐÐкºº$$$õõõ¬¬¬”””êêꇇ‡¾¾¾kkkÌÌ̸¸¸ýÿúúú£££›››žÓtRNS@æØfIDATx^eW 1 UÝ·§örÿC™„ Î|ùyxHY‹×©ñkíÙú¶oü#R~¤Dïzçãçg™Œ†jѺ”RGK°NÌ÷pšÏÈL9ˆ§Çü<앹#/ Žê8ŽŠ‰œ@ék¾ÕÜ—Ö[Ÿ'TUtl}ˆùÅDœx›c¿ìØØØüv¿vÿö¾7ë¥ l–Ù´ðIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/biggrin.png0000644000175000017500000000062012233761321025210 0ustar mathieumathieu‰PNG  IHDR ex¨PLTEÿÿÿÿÿÿ4’¥5š­-u"@E#%;³ÎUÉß8¢»ûûûúúúiËá ,hvHÅÜ!`l[eOX)v„Yd+…™-|Š/Ž'y‹=»×&u‡,s~#l|üüüP]½½½µµµ¢¢¢uuu BJ){‰&p}(uƒ ÿð×tRNS@æØf–IDATx^]UÃ0 D-Éæ"33ÜÿfuÜf:Óý{ZÁŠ9)"Öˆ¤@D!é‹jñ‚>ø¸®æã~¶]Aòçh°ðÃÉŒKk‹À«ü$IüÊ 1µitBb Ï J!Ö¨¬oÇ)D™õIä;¸9Þj;Ïä«ÜëþnIwÿ^š–Ýiu3»<ïÕøË?uùÿÿ{o` q•ô«ÖIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/mrt.png0000644000175000017500000000112612233761321024373 0ustar mathieumathieu‰PNG  IHDR®ED…#PLTEÿÿÿÕý»<:&‰w4-þÄVÂ~ø¤þ³  ÿü힘+ˆZzRÅ­ý«D;·zÆ‚·{¶zhZYM@7<4üáùÞ# B.óØ%¯tؾּà”Ó¹º}Æ®¿©µy®tjF¦o²œ«˜yQ\>±x³z§‘Ÿ‹Ž\‰Z…W瘔ÿäªn‚Voa/i\X:Ø–bU ~N“W‚O^: c; O'6ýã n_ÇÞÒtRNS@æØfáIDATx^MÍUŽA EQ?5Sh˜™™™™™÷¿Šé®d”9?Öµd™ê#¦¦¸è‹ tÅj¸·ÿåäl»‘kÇ-ƒßóÓ»«l3Ûý¸Ÿ<ö2&‚rïÆ.^/Ÿßb ¤”vrÑà8ŽLAž/Gúª±í§ÙkÛLœŠ¨ìç÷~9))Wx(xÂUöM|&I2$jÅ3Á™»quûµîfE¢àA¡HÌ9ÞcfNì3Ç™‘óÔUó¼ÿø¶×óÅ~nÒ´ûß§­¦Ý–^h`80.û/ÿû®Ö¦f‘çIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/asleep.png0000644000175000017500000000036012233761321025041 0ustar mathieumathieu‰PNG  IHDR‘ß]ÁbKGDª#2 pHYsHHFÉk>”IDATx…‘1 !E…9wð"Ûy«e+ûml·ÛìrÁ÷#CBò*yóÇqtOÀ7t¦"‰,ÑJºœ˜)ÆÌÔ º\(¬T±RXT •¬8vq¡ªC<µ')¹5}Ǧ OÓYÙ/Ѻ(ŸOLÜy~éð™¾þKîþüa“ß=ØÚ`çƒ{ˆ!¹3÷)IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/coolgrin.png0000644000175000017500000000066112233761321025410 0ustar mathieumathieu‰PNG  IHDR exÃPLTEÿÿÿ:º¤7¬—5¤.€q#E?ÿ?Õ»,uiVÝÅ8³žåÒ7¯˜%#2ŸŒú0™‡=̵âÕ'i^5‰z!UL60kàÌiÜÈ61#  9¶¡# bW=ne7°›1œ‡ }áÎc²£2    g\õ 8%&f\é~}LtRNS@æØfœIDATxÚeE1 -³—1ÌÌÌüÿWÅÞd/IßF#UµP@€r€3J)ãðÁâdƒÇ}„S)eŠƒâSçvy§¬Wul+eõô6‹ú–²›%5ßc(–µÎt2hU$¦€B݆_ðë®Î¡é—êÃÙÓ=0¼=D,âãÊÜ#Nº‹«â²öÏt‚áMoof¹_”$Æïßÿ÷¿7q ÆÁQ~(ZW- êˆÀ µHè=£$™0næ^® – eÎR  ß0–Ž_ö¯ÞtRNS@æØfˆIDATx^]GÃ@C˜^l§÷Þ{¹ÿá’àx3ì>zBð DÑ :kŒ±ÿØÒã ׺…5*èì®—7(^8 D§ûìI ÝW¶‰äYE°(Ð@ª¤÷^V ŠPóªæëìŸÌ—Eq|üüœŸö‡²Ü¼8ŸïÇÅmÛ益†Á´Ýã~yÿü¿Σ8»$fRIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/wink.png0000644000175000017500000000047012233761321024542 0ustar mathieumathieu‰PNG  IHDR exiPLTEÿÿÿ’Æ.¼ë`µêJ;H Š·,§ã1 Ú0Èïv#&iˆ'ƒ®+е0_|&º,j!dˆ”Â3Žº1r›$Vqh! ¤ÔCl‡7»ê`}«& ж+m”"ÈÛØ&tRNS@æØf}IDATx^]E1 -6.„™þÿÈÄ»ñÅ}kM©Fr "IÄ5„s)%³üu4¨Ø(«¾!xïLË€mÞ6WRã_œá9ßîT ÅIO_ÉC—V¿¬žZ[.t D¤ƒÖ}ÇvÔ= º5^ú§³V>µ¿¿¯¿¿ÿï ×*ó‰ƒÀIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/cooltongue.png0000644000175000017500000000067112233761321025753 0ustar mathieumathieu‰PNG  IHDR exÉPLTEÿÿÿ:º¤=̵7¬—5¤.€q#E?åÒ?Õ»kàÌ7¯˜%#,uiVÝÅ &f\üg>Ñ·!9¸¢2ŸŒ&ykbWH(."JÚÀ 'i^<#3 5‰z!UL60 iÜÈ61# ÎR# =neµH1œ‡  }áÎc²£bWýgg\ âÕ  {x0LtRNS@æØfžIDATxÚeEÃ0µ+°$s˜™™™ÿÿ¨ÈN|IæÖ[3U½$¢H’ %8çÂÂ/ ¢° >Òs J) ^ãhøqyi'ÓYºZ;cÓÅ­£ÝÁDïN Õ}nÖÓa[Gâûò&íаO0b[Ê£ÙMW½úuA£=±¨Ú}Ÿmå€Y±Ž´9šU ^€‰_©š/¿ÿßÿÞP~ -nBû¢IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/enraged.png0000644000175000017500000000066112233761321025201 0ustar mathieumathieu‰PNG  IHDR exÀPLTEÿÿÿ,g·+b®=†è'PˆJê 1H.lÆ0uÚ1{ã`šë ,vªï &&I|,iº (ÿÿÿ"? 2$B§By4_$S™%DýT_n'6 FE20,$ôôôæææ µ #W #æ &0³O•Ù{„ªFtÏ ˆ³ikM]@eéÛÒeßOÿë_.§æ?¯fö¾ÏüíþÞoï¿ÿ÷34ÑgÎRIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/tired.png0000644000175000017500000000035512233761321024703 0ustar mathieumathieu‰PNG  IHDR‘ß]ÁbKGDª#2 pHYsHHFÉk>‘IDATx…‘¡ Ã0E#U-è &ÙÁ‹„yˆ (¨<Ä4Ìd¢n÷zþ²N :=bùÝ¿KÎN"1“ üÎU¦°ŠBö’!6>ÎÆ2 †Üíò ŠÃλ ¤³’•“&Nª:ä®EÉÉxrñÒ©w($L¯Ê6S_qÑ”_»žoúwÓs”öÙo&ç᳃/þ;ØZ°óàÅþaÊ#i;5IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/embarrassed.png0000644000175000017500000000066312233761321026066 0ustar mathieumathieu‰PNG  IHDR ex½PLTEÿÿÿ.lÆ+b®=†è'PˆJê`šë 1H1{ã,g·vªï &&I|,iº  ù,/î-4 +f»ö#!Mehª u|Ã>r XƒÅ0uÚYqÃÿ(ß÷›Ügeê÷ßÿ÷¿6Þ LÞ=IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/devil.png0000644000175000017500000000073212233761321024676 0ustar mathieumathieu‰PNG  IHDR®ED…ÉPLTEÿÿÿÿÿÿÓ"!ƒ¹ K÷<=÷TT'úúúà "åùkmÆ #ß®ö.0Üûûû è#!pcRcÈÏ Âš•”½½½µµµ¢¢¢zÀÅ "üüüÍÈÖ!!Ëuuu4ò!!Ì|hµí …ÚÒtRNS@æØf¿IDATx^Õ®1 DwìÀ2C.23ÃÿT³V[©o÷(ÒèdÙñþA¶›÷_kŸI °vd[’¸Ó ЉPÕâ¿zác®«Z‹êT9o4õJºx™ÿ½e?…\ØTí!ð©Rëj_M š©òÉ#ó0Êó< ±4äÅæ! Lìz0»3,y8r=ùí%™“’/÷Þ³gÝókߟWVæŸtHøö#ØÛ,t:ÐΜ dûý­¨ ÿYÈŠ â5Ûz´IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/punkmohawk.png0000644000175000017500000000113512233761321025755 0ustar mathieumathieu‰PNG  IHDR®ED…5PLTEÿÿÿÆ.†ÓH 8®+xˆ'aêJ¨ÿÿÿïv¾&"·,ã1™Ú0’„D]v"T†ZçI¦M4N5|&Xv$T™ ˜ º,w%Ut/Wë`±ÎT›u0XP!<êˆÀ&ß0—A, &m5 $E0pOè=£mM¯9xr!Q}'Z/ "ÕC™9))  ÄP”2 "/%?2ès¹Ým°Üm¯E"7L4 # \Aâ2˜¨ ¨ ¦ ¥   › š u$S— – ” 0"Gƒ88:.‘ffçääÒÏÏžžž_CK5©|Ÿ°tRNS@æØfÖIDATx^UÎã²A àIÒbi\Û¶mÛzÿG؞ݙª¾çß—¤*Ljƒw†ž¼DÝÇx¡ϱŠWšO•«ÿ\Úæ3|x¼OD oÓ\J©ŠnÆñý %†|¿÷_ïÑ¿¼ðgß~3:ùçlç[_Œÿ–ëïöÚ5ì§“âÁÊÁ¡X%íxY;|’? >LÄIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/hurt.png0000644000175000017500000000054012233761321024552 0ustar mathieumathieu‰PNG  IHDR exŠPLTEÿÿÿ´Jê”.Ƈ,·+®f'ˆ_&|¢0Ú¼`ë: HÅvï"&§1ãˆ,º!'w#¢“+Ç„+µ~%ª„.±ˆ0¶‚.®l&‘>Sƒ'°9L•=Â’<¾:¸³Jé+6#,~4£ , q!š@rÀtRNS@æØf„IDATx^eEÄ0 C#; ff¾ÿõ¦M:›Žvßz²e‘D@ü¯•RÚ£E#¹‘4(Xí6ýÑs2ç—ü>ép°ôµ­ÙÎ÷Ww¹¯-k(N'ÁQbk&^…£@áP9¿˜~jÍš|Þ¿]ѲÇÒ—ûlSJ–+ƒN¿ÿþÝÿ¾™}E–æ IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/confused.png0000644000175000017500000000042412233761321025377 0ustar mathieumathieu‰PNG  IHDR®ED…HPLTEÿÿÿKêJ.Æ/1ã1,®+&.·,(ˆ'!H wïv`ë`0Ú1&|&.º,/®.ˆê‰'‘&!1¶00±.ÜçätRNS@æØfzIDATx^ué AƒMtÎcw{¿ÿ›–)¥õGà3¨QD Nð#ÎóâëO&R¾TKŒ±T~pËvVÞ¸p·B¶ÏFͨ*`¹Š°ØzïÀ°Ba´ ½µÖ5X¤¤Å—ÅÉûsþy€×9?÷߯ªz<æ~wßçóùýoAmׯ-âXIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/tongueout.png0000644000175000017500000000050512233761321025622 0ustar mathieumathieu‰PNG  IHDR exuPLTEÿÿÿ1ã1.Æ/KêJ`ë`&.·,(ˆ'!H wïv,®+0Ú1&|&.º,ýfüfG  ˆê‰0ß0!-Ä.?è=iÎR     9%-µH # m¦›‹tRNS@æØf~IDATx^]OÅÄ c §íº»üÿ'.…åBn™¼È¨"C¤È»£óô§ƒÅv JGLp,o‘YD˜Ñú,;LÌZk愎EÑ!-€‘”©|[¹éõâÿ®6÷çušý%Ž·Åò±Ëù­ÿuþ¬¹¿í»¼÷§²¯ßßÿ÷‘Ð`Ý9IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/hangover.png0000644000175000017500000000051612233761321025404 0ustar mathieumathieu‰PNG  IHDR ex{PLTEÿÿÿèg ÿuÿ‡4ËZ žJFÖ] ÿ–L(P-ÿ¢eÿr Ú] ÿ}%Y([- ," Ïn*²^$¶Tþ†4Óp+Èj)0Î\;#ÿ­ràg­OÔZ #1ÇY×oŸYtRNS@æØfIDATx^eWÃ0 C­åí¤{ï}ÿ6VZHßEP¢ŒÂ™ÍNVDlât*Þq/›Ñ~rºÝ¯$çÙ–øÔÙÊt³ ‡å¸€eø9ç@Â&všB>ö:ªO?_óÏWe^óº["j±î×ûP±@ãxÐï¿ÿð¿7]б….wIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/deviltongue.png0000644000175000017500000000066712233761321026127 0ustar mathieumathieu‰PNG  IHDR®ED…·PLTEÿÿÿÓ"!Kò!!à "ƒ¹ í è#!÷<=®ö.0÷TT'ùkmÆ #åß% ÌÜÏÍÈpÖ!!Ñ"!Y?cU$ ÎRÅ "µHÂÀµ|%ÿeÿfÈò€Ë ‰4úËÆ"tRNS@æØf®IDATxÚEÃP Dc;ÒpSfffºÿ¹šïD•ÚUg3zc™¬?”|{gŸssÍÖ œ)ak}øÎÖV„!RÉgÞ©‰£µÞ”|ÅüPRõ ¢*¾–‘ô¶El "¨ÒN˸QH¸à …„Æqz4ZQÆ·Œ£ß:÷Ë×ê |0ý<_•ó©^0óy?¸£ùj:4û9ðÏºÒ ¶¹ß±Y濌ÞŽ M!IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/mad.png0000644000175000017500000000046612233761321024340 0ustar mathieumathieu‰PNG  IHDR ex]PLTEV6.ü9/í(Ê ß °¾þZQþ, üÒþï¦ °Ú*#Ú îþH>þkg³ Ë'"»£Í Nþ~zû¼ tRNS@æØf‡IDATx^EG„@B¥ªs4gçþÇS?Ù}XÕ%<ª^¡®›ù^ÜšU.‹ì5  œ‰nõÚ O‰BޏcÙ2˜<|gpò,Erv². ;î\ð8ý&öùáE0ÖúT¸ î8§ÔU½FR Ê<ý&vCÎj/ƒôÜǸ]ŸŽÖP}÷þÖBV3’åIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/winkgrin.png0000644000175000017500000000055612233761321025427 0ustar mathieumathieu‰PNG  IHDR exPLTEÿÿÿ’Æ.ƒ®+Š·,§ã1iˆ';H ÿ Ú0µêJÈïv#&º,¼ë`x£&_|&ú¿,}«&Vq}ª(¤ÔCŠ»+l‡7»ê`Èêˆ   % '9dˆж+õ Â-}©'˜\јtRNS@æØfŒIDATxÚeOEA ›vÜvÖpw‡ÿÿޏ@niš&%ˆ‘|RPJ…Äm$° ½€æœk¨ò@²î<N­1Àd” ºÉ|ŒÑ nƒs.X‰/|Y¸OúÆÑ·&€püg9¸¢&ykbW!H(."$j] <#3 NȲ kßË>vÎR0 Ž6¬• µH  W´&#tRNS@æØf‡IDATx^]OÅÃ0 ‹í0´33ïÿ¿nIº^¢›¬'0Ë rD¬)„†þ´á˜Àjé=x¬òÁðz´ÚïTÈM”%Þêçù¤Cð(‰‘@PÚZ«  æZÞo¹+õä÷ŸÃë¸þ>’?å#ô.ƒñvós…~s}/&±¿Û7]Îgy_¹¿üïL1˜fôIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/angry.png0000644000175000017500000000071712233761321024716 0ustar mathieumathieu‰PNG  IHDR exÛPLTEÿÿÿÓ"!Kùkmà "÷TT¹ ƒÿÿÿ' è#!Æ #ÿÎ"û''¢'(Ÿ„,ÿ**#Ö&%ü00ï//²%$ý77ß11… !!!‚uå76ö<<ù?? üDE,÷UU·"$xXXôôôæææåååÚÚÚB  ÿ„00ò€d@@­ú@@òRRŸå43—e’Õ?tRNS@æØf¢IDATx^eE‚1 -É8fff¦eøÿ‹Ö™l.IßZ%h±Hˆ"» ¹ÑZŽÿÖ‘¹ ¼'¥ƒ7BbóõûaTàˆÒýF™@r‹ DêS`¡®ô”B jß™§»±ÒH¼ •¿¤´gyçe:$¢ñ[³b9šâzF.¹»¹¯û·‹ýÕ/}É£û«ã‰ˆÎ‡Â=Ф•¨ÆÛøœÿñ¿?¢Á •æ8MIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/dazed.png0000644000175000017500000000065712233761321024670 0ustar mathieumathieu‰PNG  IHDR ex½PLTEÿÿÿ¹ Kùkmò!!Ó"!÷TTà "÷<=ñ;<’è#!î:;Àkjƒ¾./ÁBB'Æ #FN G L O Ç bƒÈVX™BC±}@ ã78I›B é M¯fH ò€R#$ÎhšÂ¶®JŽ##¤E €mðàtRNS@æØf IDATx^eÅ’C1 -#¶ g\&f\'i^âÕ5‰z!UL60iÜÈ61#  # -‘€=ne+‹z1œ‡ }áÎc²£*‡w)„t2ŸŒÓ’°ÚtRNS@æØfIDATx^eE1 -0/™™áÿ‹×I.›¾µ4ª‰QA$~‘Þ{iè«¥ƒWÆÁ£„J)UA>x_mÚœ '§Œ9Ù†´|µÎ3¾õ@’ jº¾œ÷˱O¢Žs;²ƒqÚÚ‡¼NQk®ï…q;î"bÊWgbüÎ5‡¼¤F¿ÿþÍÿÞ×'Ú ÇIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/emoticons/smile.png0000644000175000017500000000042312233761321024701 0ustar mathieumathieu‰PNG  IHDR exKPLTEÿÿÿÖÖÿÿÄÄŠŠ<<úúîîÿÿ9ÿÿU¸¸ÈÈÇÇ ||ÌÌ ŸŸ››˜˜§§ ÕÕ ~-¼ÁtRNS@æØfvIDATx^eOIƒ0 ‹d;{€îýÿK›¸PÝd»@Ü ßZóÝLlä‹ä”R–e?RUI±Ðe/™,¥Y<š$-õ]‹&ipqòÏäñÔë©Ã Wí~½Qš .ºw=N_ÝUCåüß)žô~¼åóœ>'Ù™¯WèN‡÷+†- é²Ä߇Ë>zªàûƃzþfGIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/alerts/alarm.png0000644000175000017500000000121212233761320024152 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®Îé pHYs ‰ ‰£ÒêtIMEÜ 0Û?£žbKGDÿ‡Ì¿IDATÁ[HSàv£‚¨ÖCv=zÜåœÎlsžvΦÉJñÉ–&ô¢a›IÐe=…ì¡+¨|ˆ¢Œn>”m:b^ŠÕ6l•é@›2(dëBÛ¯m2¶./õ}ô*}P¼Šòl[ÍÜc&å°û5qzp­”Gc×£ šxÙZÂå“Fì};è›j+:ÆÜd‚L€¹¾Ã>o5DP¶“2†%4¶SÖåÓ5^RÊûž±q›§Å»PAbÈŒí”õ®FNbÌZ"lˆnôb%¥(7‰ )ö™£,¬«ó¡¾H¿ÑÜ’Ð8‚å”ã{(Û•dm”³Œ=©ƒiq²‡òAÕå’ €í/n*,*,)ia‡´pÍ…íô+8îxåh%x¨ LsÏÑFBÓ›snë¨9R=Û<âtšÄ>ú;(p}˜C÷áÀú?ŸÌô@WIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/alerts/warning.png0000644000175000017500000000103212233761320024523 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ .–wÍûžIDATxc ¨z¨ÞTóEeDPáâºÅ#ýååwÕÛŸ‘Å™ÐrVðJs2ðŠsÔ9¸jȰ3ÿ‹?Âü-_]BŽN.¥c±ó•Žq²sôáô††…Ù?û¯·g10ÜžeÿÕ쿆 v9&³3ZŸ(Ü£´¢põ vŽI ŒXjEs˜0½,9òÃI$ü‡Sɦ—œ†Úñ U¸Ø:X". v)°ñ2(° vE\da`mÓáFSÈQÁ-Íq+e%ãWÍ—@Ó_0~MYÉq‹[’¡ -XŒ¿Úýߺå?Pãþ0ûÿCþ3mÝb÷ßø›¦’Bƒ6ÿƒNýw±ÿK¼ô_Ìr:eó_w%j°ü>¿Ê«Òý¡µðü ûßÀ`²º,šG  ’ºüìºP›4B‚‰,,?ü/küWøÏÀÁúŒñÌÿg'~QãÇ„Ë7Í9L´¢jt[“™á-Ã?x‚âdøÎð~ ¾^š¨òâæ_!”À…’Ù$_®|Â@ÀÔ‹¿€çvŸ !IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/alerts/message.png0000644000175000017500000000112712233761320024507 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ /e­ÛIDATx•Ò=haÇñï“û'¹æ ±Š(¶HI TÅÔ""Šà ØÕ-tTq¨ƒ"E7A1‹Pé¢t¤ˆÍÁ¥PL*& ¾kÓÆ¼Üyžy8lÁA¿Ûñûðü—ã_S¬iÀô áÑÐ^†Xü9ß-«ÒRë/p(oÜæÂ.]Ú îÉE[¯:²g"“ý}ĉa!‚͸§6~ùT^ób.o>‹‹À ãl±—c?F VœÖþBæ”âÒG Á¥]¹S¿V_FHá_) ›h*&²‚… ™ÎÝ+>Õç,„D6TDÃMGüÏkc•O¼Ø5–Φ ÄßѰ™‹"tÈVÎO?x7ùtBÔßÑÐÛ!Í îDÝž™† ñw4´jBÚ·á,ëGÃþºƒÎ$e°.ÇßÑp @—í³“Kpìëe{õµ«¡¿£áÄœWÕ´ËæW‡®Âž7G¯Üóªs <óù£K‡S¢hð¹Ò°] Br< ó͹þdl\µôhþÖÍÇ,Ya]„çøì¹ Ê¡—²½©ƒé‹±¾Á0êVo4wOýfú4Á«­»¥ï/y›q¶ImëÇ Ió´f ¨IQz?.ó”)©ÿÛ/Ä+˜YÞ‡SuIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/alerts/success.png0000644000175000017500000000112712233761320024533 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ -*fáWîÛIDATx•ÒÍkA€ñgÌÌn’MÚ*¤hU(Tû!$­Bn‚àÕC<(1Ð[ñÚöêIz¼X0éÁCñP¡X¢„)„¨PXð qÕv6]‡fWéA_˜Óócga^þu‘QÝ¢,Ħ¥Õ­yk±Ê½<‘WìI…$FÍvC—^×{5²ñ9ëQÿP‚I,,“¬Ã»³‡¾|~ùâX>YM)II8s¾ég› 8Sv%¥ D˜&±žúnnPÖrNÐ/9Y‰ùámâÕÊÖüºçJœ¬_ `悹Ô0_û{,Y]þ`Ÿ\´_9HÓøs"ŽÄ%÷øöÆÖdz/Û-Ì}ÍCÜôðêaɉ7žŒ\¼×~Úc}Ó— M Ó–Àæô©w¢9võîËÙôa!Màà{°„}âšhŠëGC† x¦ðdÛÃ"NZØKãW†d„hzžÑòHch,^î¯þÉh™ÞƒÉòÍŽöIa:pú7óéè[o“å }fqfÕÕæ sBæê™Õéy¡ ßLÔý•sƒ Ò¾õN뎗]¿ÖÌÏ륊[c3ã—í#Ÿ¦(:jVÔ÷Y\_Q¤ÀÞâRcŠÐüïübϤ›×¹PßIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/close.png0000644000175000017500000000117512233761325022706 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ /økÌ,IDATx•’ÁKQÇ?Ï}o6wFG­‘ ‚ Uw 5ѱCtˆnþ²à%:®d‚‡<Èv4oQt(ò •¢t±¥PؤC-$¥9¼·;ÍÊ,Hx¨/ |>|ðøò¯ÉyU›#©!ú(×ÖL*}ÖLjÙAµ¾¨¤¨aЄºðiR$Éݶ–Ü3­8d°±°Ha®OvU¿¿;ÒØ?˜yë(I’f ?1üÒ¿/on@ À€J—ÕŠK½Ú„@HgP¯ºÄ”õx@%bT°ó’ »Õ™íùìò>Ùåù™íÝj‰ ¼ëš64]/Ü¢ÙöU1廌¶abÎC pàÛHjTFýS±2&žƒ_hõœ`Ïož>'HãûÇ ¡õ9Å42æ‰hW$ ÍæÊò&°ÿÛ4TóDìþb€7˜[m´õ¶Î­ºA˜˜'boŰ•Í-@nÖ{–›¿´Õ `bžˆÓo(@R/sOœ¢‹Sô—ä+u ”cŽˆÔû§Ó×\õ&Í! —]}ïõðM¡[„¾tw|e_wÐG;™øóèÀe_¯ ß$ˆõhñj÷´´úš†ƒò}“_Í,ÔJ{k|õÌYYéù6Ä„­&Åú1ÃŒp8\Ö( Íÿ曬öRû€ÖIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/group.png0000644000175000017500000000113112233761325022725 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ /økÌ,ÝIDATxµÐ=haÇñïs¹Ëå^z´^ *´Æ—¤í¤:”ÚAêPÐQNZкÕÍYÐE|¡CÝ\Ô©Î ]DÅ!…A¨šRÄ”Û{\s/ç%lœôó[x¾ÓŸNÐ!×¾Ç9àyóze›}Rt8rÓ˜µLÃT†yã%ûHpÂ(Ü/|.Ü=ª!”) +™†2…ÈiùÛù…;Ç 0r9~”¦IìoÌï]è€KƒŸ‡äqžª43¥ÇôœÑ±ÐÉNLÛ**ÓvvÂhý$Hp@O££5œºTeTuêYCA'í°¸æoE„›s•\u´ìà1ZÎUç*áf„¿U\k‡ó±5ò "pW#"ÜUä¢FDì̃ԯ 9 Aïà%„·Ëžä%g‚^ì!§_K^×.¨²g—o}yÕfµƒ*Ðä«f}xrì“éö5•xRº"Æâ=å¢,_µ£ó&&]Ð:N2ñìá†6vÃûq*DŒÇÝåß.Ö=GK¥‘0PŸB|Ü0³¸h]ëÛ>)^”†kg ýt0Pùm7‰ÁÃ}ûjgÅñ$¥±¥¯ :ÅíØ_7̈$–DM-2d È`!‡¢&–d€×>ã þ‡_Jp¢·vN”IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/edit-sidebar-000.png0000644000175000017500000000042412233761325024426 0ustar mathieumathieu‰PNG  IHDR;mGúÛIDATx“½ Â0…iè!%PCÉùI€àd$¦@b Êô”ƒ9ˆyO:7VÎ_a=ûÓ=ÇYxï“)˲cÓ4k®ÿìÀ]°Â³ºƒŽ¹I‚Íx‘Tè™Y  oàƒˆÕZáç¼P ¢!üÞ©’‡ˆ2Zùƒ±Õ”Ë꾊IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/slidehoriz.png0000644000175000017500000000015112233761325023746 0ustar mathieumathieu‰PNG  IHDR(‹R½[0IDATxcøÿÿÿ Æ &LHL”Ûxæ`Å WFqÚ`Å£!H)ô¹xÐ;º¤z2mÈ%IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/checkbox_on.png0000644000175000017500000000073512233761325024064 0ustar mathieumathieu‰PNG  IHDRóÿa¤IDATxc€vR±7ϱÉ1@ˆ?ñ ΄0ïX–ãÁê@uÒ@üªùØ0JæñŸÉ»þã½›cÿ‹J‰|…jþÄ®@ ÖÌÄß §ÛÿÏì7ÇŠ3zÍþËiˆ‚4Âp6H3̹RþçM±üŸ;Éâ¿_†ˆ‚umeàšeU%€4C Š3¦þ/šiý_ËR ¬È&@éñl0¶ R†kÖ6—ÿï¨2 Å€Y‡Rÿ—γû/§‰p¦}¨êÿ€]8_TVðצ°ÿŽAØ 8œú¿aóÿêŽÿ´Åàš˜˜8À4Ÿïÿ¢9¶ÿ'í‰ÂnÀì#iÿ;¶»ƒqóF×ÿJºâpCXÙ8ac–›z »sަýï;àÇ;=þ+ëK€]ÜjŸ~$»s¥ÿŸ|Ü5xƒ4£ˆÍ<‡ÕιG³~Í8üú¼xΉÄÿFöJ(€Áô½©ås§ÿŸ{</.žàûŸ…• ’І‘t‹0µáÂrª" ¼ ˆÙpE 6ƃ Ð5ßóWÑq]¼IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/phone.png0000644000175000017500000000062212233761325022706 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ . èÆ±FIDATxc 0"säÝ™­YŒ ˜Ïý>÷÷ØÃmXjÔ°5³2°!à üÍð«ñF…Fÿƒs#øg¿®w8 —gAHp3<¼óõ‚ÿF‹ËHa*d[ùÍ*„B4𨤌Mœ‰P°VˆÏêO\ùþÁMøÊ…S᳨¿H`úûçêß ?8×üþÍŽÓ"¿,˜Ø~Z2YI &‘_¸Lüù™åÆ¿¿l7€!"?³0üÄê™ê}‡¬ÿ°±1€ ‘,¿ì޶:a ûÿ ÿþG@^éš[t‡Û5IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/loading.gif0000644000175000017500000000331112233761325023171 0ustar mathieumathieuGIF89aöÿÿÿÔÔÔ”””```@@@DDDnnn¢¢¢ÜÜܤ¤¤$$$(((000666>>>jjjºººrrrìììîîîÂÂÂŠŠŠPPP^^^¾¾¾ÐÐÐ:::ŒŒŒªªª\\\|||ââↆ†hhhœœœfff¶¶¶FFF °°°–––èèèôôôxxx„„„ööö‚‚‚¨¨¨úúúüüüÀÀÀÊÊÊøøøÖÖÖ®®®ðððÒÒÒäääÞÞÞÎÎÎÆÆÆ¼¼¼àààØØØòòòÚÚÚzzz´´´²²²LLLRRRZZZbbbBBB<<<ÄÄÄvvv222êêê***ŽŽŽXXX,,,   NNNˆˆˆddd444ÈÈÈÌÌÌæææ¸¸¸~~~’’’žžžVVVJJJHHH"""¦¦¦ ¬¬¬ššš&&&888ttt...ppp TTTlll€€€!ÿ NETSCAPE2.0!þCreated with ajaxload.info!ù ,€‚ƒ„……#)-†…$*.‚6:7… %+/‚70=6ƒ†6– Œ=?=‚ ±3@?‚ ±;E‚±7A>‚±B;‚±>CD‚ †;+Fƒ &03 8<Ý„!'14,< Œ"P°á¡FŽ`Â!ù ,Œ€‚ƒ„……;WX []†<U Y-\$_&…JOSHTJ^*\„GP›…2… #‚7ƒHKQ³:6‚L=ºFF‚'Mij‚NA³:bËI³T@Á?R†/D½‚924I ::/E`ÓƒA&V,ZJCaTT9Ij¬’†®ƒ!ù ,‰€‚ƒ„…… i^,†CK jl…8^ghQCRk ƒ"dN<†h-P‚cfm]‚,>·Jnj‚2H0·T.-‚43·…5GЄ`eC·6:ƒf¿…:=σG5AT770/6…@C(CBA;@/܆F rø ¯Zµ@!ù ,€‚ƒ„……?(N!lG†9'g[jNJ…A#HlF=B]O<ƒT&28†f_L;‚9V(H ‚J, ·kW‚lf:·U‚olÇTr‚·N*#‚F`8"p Aƒ/`9"0‚7ôq…E "T=36né  F o)!ù ,Œ€‚ƒ„……aoe&?† +qe4H2…D< @33 %ƒF8<;†J @‚@ce[l‚>8T·Bju‚aB7·K¼Adz0·Cv^‚ ¿ur‚6b?Õ…Y)ƒ3T3ƒ+'s …6F0:‚.nt·n830ÂÖ­ƒ‚!ù ,‰€‚ƒ„……0@9(+A†TA8cJq >…`GT6:"VVAƒ6@>/†B4eb‚= ­oR‚TD3>h»²¿F^‚ÆM'‚0F7¿BLd‚63Ó]jlƒ7Û…&NG†+TTc1SOJ†vwn\-Yr;"0†:TD AB8Q"…6/37;(I@„0=:†GJ‚73¬QfA²6‚D,<¼…3eÁ„34‚.À1&‚2*^¼Z‚\†3‚#*N D‚K$+®C9‚ \T®6Jc‚ -¾:¶gY(®DZ‚e u®,A‚KXq†ÆoPt2Q=FAl!…+ OjLM^aG1N\@ñÕÁA;tmpjWNuGb/horde-5.1.5/themes/default/graphics/tab.png0000644000175000017500000000022112233761325022336 0ustar mathieumathieu‰PNG  IHDRޤaýtEXtSoftwareAdobe ImageReadyqÉe<3IDATÁ À0ìÿ n1 ýÞ·%ħÝmæuN¡Ý ínçœB¡÷^3Ó½÷é“:µ4PhIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/sidebar-active-bg.png0000644000175000017500000000021512233761325025043 0ustar mathieumathieu‰PNG  IHDR ]ÕÌTIDATxÚeÄ· À À·½ÿnL"çн±Dç+k bÎNŒÑˆÞw­V¢–B䜉”c$B'ïýÉ9÷ËZ{2Æœ´Ö„RŠRBb{¾î¯ëκ^XÄeãxIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/map/0000755000175000017500000000000012262230550021635 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/themes/default/graphics/map/marker-shadow.png0000644000175000017500000000050512233761324025115 0ustar mathieumathieu‰PNG  IHDRÀWÎ IDATx•ÏßnÒpÇaÛ Ë`6S÷g™NfŠÖ‘±A[i½ÿ«ò9 æ'¡Ø}“çô“÷}óŠÅ$¤\1å [Ÿ¹áÿ]D”3y¡ ¤bÍO&]®;á‚{lhøh(x uG 1gÆZ”mÑ(~"§<ƒšg¦m/“Su6”dœï ö¹æ;eÇ`EΈ“Ý·.É(:¾¼æc†Äað-ç|cE}ಚŠ'f\1 æïz¼ç+/Ô-¡ %KæÜrF²<"åŽ%š­š_,É™1á#މøg§Ü²  "Ï<’qÏ„ RúAlïnÈxbÁ<ˆ\rÆ„cb"nÌS®ùÀ)}zA¤óþÑÙ"'XA¢¯IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/map/marker.png0000644000175000017500000000104112233761324023626 0ustar mathieumathieu‰PNG  IHDRÞÕeíèIDATxÚ¥ÕÍK”Q€ñßh£Í8¾3…I®‚ÚD`_´píòŠÝm Û¹oÓ.+¡j. ¢ˆ ‚@B(¢HXêûŽNéL7p†3ÎŒ‹gs8÷árϹç¨T*‚ý[¸‹mäo˜dÃY’~gù“-KQèfb/ Ÿ„PàY O1Ë(Ú›’âX߆X,­ «ÌND¼G߆R¤:¹‘<B5X Œò'ËÎÖ”¢7âU? ÓB¨Þv’ts™5R d™¡´,„š`.0H1ÇWì >:¸ž§ø²ÎÁ›™:9w(gXLs .î!.×H~È®’ ÌÕ÷SL3©ˆÉ1Êë%ÚQàI áã@žÏh¯¾é‘É|‹7=$8¾¦úÝ<ºB©•7½L)ÏÃõZjW†äK“ÕÿÈ2žu›¿“§Iš‘%N3TïGmíâûó…÷)GL¡­îßÇànâåš¾@‚à ”ˆw·X©'b)b¼™)u ›âÏÚ?¬ZœíMÍÓãÿnó¿°8HÜÎ…V†ôŽ ñÔÒ1Ê“Hµ´N:¸zЏ*œ D$8ÔòŽB:ÇôĪô<‹9nozñáLñ*~¡°ii@Äë^–RœkeE×l± ÕHþ_œGX‡¯ÚAIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/slidevert.png0000644000175000017500000000021112233761325023570 0ustar mathieumathieu‰PNG  IHDR)úÑu+-PLTEžžžŸŸŸ··¸¼»»ÄÄÅÊÉÉÐÐÐÜÝÝâââãããåååîíìïîíðïïôóð£!RRIDATcÈ;<©Œ!ïâ‚!Olm)6²_J=¢ò—IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/slidevert-bg.png0000644000175000017500000000012712233761325024164 0ustar mathieumathieu‰PNG  IHDRlbxIDATc¾páBOwGqqqA~Anäɤ¤$£P ¾¿búýIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/reload.png0000644000175000017500000000073612233761325023051 0ustar mathieumathieu‰PNG  IHDR'€Õ†¥IDAT(S­’;,CqÅoãQ›0HÔ+܇*JKzïÿÞÆ3‘4a:¢‹Á`²‰xS7‰D›…&T 6"B´ ñ*Q%¹-á¸1üÛʳ|çä÷å[>†ùegéÖ5ì<÷ÈE5?±³EBinYMÿ•¤ók¨…I³¨MfT·%aE™‚Ï)âñŸbjL= xüÊ; ²˜ KuPî1 24[|ÓÎX;a»c cóퟲz±s|µÛ=¶5±=åŸÜèI¥¥m’ wʼn7àÂ(F0Œ¤Ð²æ^Áº—Ñ/°6H£&ßaQ\qHp„h$wÍzàmù#4*W䣿I¬ È#8ìz }™Àã‹g?À ›FL£&W"ÆÛTåë`œ0X¯­Ðóöű2¾üFBç vݾ´Àù^ï-´äsŒ¦ nÊü"µ^fµ0×€Žó÷xÍfm’е§n"ùÑ^[.CàùÐŽü,Gå¨ò<¸stŠU™d!íí¹0‹'D5‡0*FOÐÿeªÚEÄ[ŽßtIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/navi-arrow-active.png0000644000175000017500000000040612233761325025133 0ustar mathieumathieu‰PNG  IHDR "&uÏÍIDATxc¨[å¤Ä[ø&߆¡r»X€ ¡Î3€ô|¸x¶Í1Yul˜&æÜÉ– ÕËwàÒP:Ïöš¼–`?/[  x&«³dö™kÔ¯q>Š®¡r‰Ã5c‘Éìœ,‘ŒŒŒü È d®-+ÐF“Æõ.—‘4=Ôµ•˜ÔÔ ÄL è £Çœ½`ºµkÓz—ë@[›{ÉÎåàfM*kÀ¢« 8€ØÖÌS¶–›-¨Xˆ™"s 6° Ë¯w-PÓ!IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/shadow.png0000644000175000017500000000355512233761325023072 0ustar mathieumathieu‰PNG  IHDR<E‰ ÕHPLTE«„¬›tRNS !"#',./245«¬ë¼IDATxíÕÑ1†AX[×Á‰9ÜAØç¤¿ƒO¬VæÝ†þ²Õ`h=u¾)ÛUŸ“OC{g§#[y‰ƲEˆç Äây Äâñ€x@<€x@< ˆˆÄâñâñ€x@<€x@< ˆˆÄâñâñ€x@<€x@< ˆˆÄâñâñ€x@<€x@< ˆˆÄâñâñ€x@<€x@< ˆˆÄâñâñ€x@< @< ˆˆÄâñâñ€x@< @< ˆˆÄâñâñ€x@< @< ˆˆÄâñâñ€x@< @< ˆˆÄâñâñ€x@< @< ˆÄˆÄâñâñ€x@< @< ˆÄˆÄâñâñ€x@< @< ˆÄˆgÄâñ€xñ€x@<  ˆÄâÄâñ€xñ€x@<  ˆÄâÄâñ€xñ€x@<  ˆÄâÄâñ€xñ€x@<  ˆÄâÄâñ€xñ€x@<  ˆÄâÄâñ€x@<€x@<  ˆÄâÄâñ€x@<€x@<  ˆÄâÄâñ€x@<€x@<  ˆÄâÄâñ€x@<€x@<  ˆÄâÄâñ€x@<€x@< ˆˆÄâÄâñ€x@<€x@< ˆˆÄâÄâñ€x@<€x@< ˆˆÄâÄâñ€x@<€x@< ˆˆÄâÄâñ€x@<€x@< ˆˆÄâñâñ€x@<€x@< ˆˆÄâñâñ€x@<€x@< ˆˆÄâñâñ€x@<€x@< ˆˆÄâñâñ€x@<€x.ˆÄâÄâñ€x@<€x@< ˆˆÄâÄâñ€x@<€x@< ˆˆÄâÄâñ€x@<€x@< ˆˆÄâÄâñ€x@<€x@< ˆˆÄâÄâñ€x@<€x@< ˆˆÄâñâñ€x@<€x@< ˆˆÄâñâñ€x@<€x@< ˆˆÄâñâñ€x@<€x@< ˆˆÄâñâñ€x@<€x@< ˆˆÄâñâñ€x@< @< ˆˆÄâñâñ€x@< @< ˆˆÄâñâñ€x@< @< ˆˆÄâñâñ€x@< @< ˆˆÄâñâñ€x@< @< ˆÄˆÄâñâñ€x@< @< ˆÄˆÄâñâñ€x@< @< ˆÄˆÄâñâñ€x@< @< ˆÄˆÄâñâ¹@< ˆˆÄâñâñ€x@< @< ˆˆÄâñâñ€x@< @< ˆˆÄâñâñ€x@< @< ˆˆÄâñâñ€x@< @< ˆˆÄâñâñ€x@< @< ˆÄˆÄâñâñ€x@< @< ˆÄˆÄâñâñ€x@< @< ˆÄˆÄâñâñ€x@< @< ˆÄˆÄâñâñ€x@< @< ˆÄˆÄâñ€xñ€x@< @< ˆÄˆÄâñ€xñ€x@< @< ˆÄˆÄâñ€xñ€x@<  ªz÷êÛ+3€ßÔÕñÔõÅâi;ÎSŸœÅâ9±{ºüª¢³©Êx2ó àwNŒðwàÅï‰ÊG>ª¤3`IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/locked-inv.png0000644000175000017500000000065512233761325023636 0ustar mathieumathieu‰PNG  IHDRºWí?™PLTEÿÿÿµµµ××××××××׺ººÚÚÚ¿¿¿»»»111¨¨¨Â©©©×××ãããÖÖÖºººeee···ÇÇÇØØØ¬¬¬¨¨¨ÁÁÁÜÜÜ­­­µµµ²²²®®®½½½¾¾¾···»»»ÆÆÆËËËÑÑÑÎÎκºº¼¼¼¯¯¯×××ÇÇÇÏÏϸ¸¸fhÎtRNS»`Ðúi”Ì·ÒÈÔÑÖý`=üÁÓhþ0l’4ëéI»EaQ¥IDATx^uÈ×rƒ0DQz/¡ã¶’è¸&ùÿ3ŽeÁÀä¾ìΑÞZx¿‡š!-RÏ=¦ú³:[4@-V¨2ŒÔ â_â¶1LR¬L üp)ÌÔó‰Y”‰A@ž™¤Œ* ÍOh‰àÿ‹ÿØÁRèý†Á§“IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/google.png0000644000175000017500000000303112233761325023046 0ustar mathieumathieu‰PNG  IHDRK Z}…sàIDATxí˜mL•eÆpÄ£ ¼€ -ÐBðÅ|‘ ›7õXf¾XŽÒ‘˜am¦JMÒj¢†4Ó¹ ©eCÈHµÜ\[ZS‹>ôÁ-S+mkËÚ\q·kõœ=žƒbcq~Û½çÈÀsﺯÿõÿß"Dˆ!BT›&úúá«sÑ“™J¥<Ðg¥aU ÛÈÏxÉ Û‘8SkŸajS#Yo´ •s´•‚泜¬bzíÃÆz|‘ì%rž•PŒb?ÝÎôý3È©½‚§dió3-QF&’‘ÅsY}™1_Òö¶1â‰|z;y’ÚÎFº9†Ì£†øys鈸çÑr3¨WŠ%1áã6âfnâv$>4MN£¢ÌBb¥°‚n£¨å-W¨êº$Bq.Ñ ‰,:›J…Öî$ègáŵ$~÷¥ÖÚ¼ o‡1gó`òÞÏaÔ¸{éëNGÏñU õ3¿XÅ'±jã(´ö¥ÏXDžm_D%¥é‰#ž‚tfœ»Aœ·….à‹%¿ÎÍ7Û°iu_féùimç¹¶´>8ö2›vÐ"´–óÊåãÜø¥‘kú76–/'Ši [ɪ®!­ì%íï¥_•¯ú7y†Dîâ9‰ÅЈÅÖßzã‰mBCy4û6¸X¨ç…Œö*ñý‚ çˆNF%8pæ›t’nƈÑ:ýÓ‘˜æ0Ì8(² õáVþÀgì.böDÆ\:‚ÑŠêÃ$Ù]Î'­ôûÿKfÓ?FŸG±ŒqYBaãõÖ½ fv8–HOýP©/î´X^oìW)œZÉÃ.¸0k¸ <4ÁC1Èa7ë1e ¸èïÐ:Ìèèû±“»k©§½"Â^c +ð‹¥r“(d?˜ Ë#].vñ}a8«¹#dïìÓu¸NИɪóC¸YäâÆr·l_†dŸGÙtvfÌpæá€Ü%±v.Á Ž«Ãt¶œvk|dœ2$•ü†],9Ë©²çŒ‡½•á´ñîx*£©“Ë隟rZ^Ûa¸NÜ7^SÕg•ˆ6¤R“¥q@¿£Ü*çOmòǓԨ³îâñ`·†Íü.±cÈ¢ðë*$Jÿ‚Êv9–zÔÑY–XSùh· 3+œ%{¢Y©ƒ£KÄ1@ƒ¦¾8èè Õôž±íšì°#¶µè´Tf²5AP™J¬tÈ’XrÖÊ¢àSöõ&Z×{ùkJ&Éhøu7é0 Ú«…~î*1öÌbç­b©ÜêÁØK¾Ë¨Ë¨þ˜)w*Ý íY‘üÿ¤5´‚‘ÝQ+w eß> Æ w[&9rñ]®K,,Ôñ$LÚ–Ÿ4<+ÇtÓÌ`Ëð rí­<‚«ÿÙýVí]e$¨úkÊ‚¡{£&}[YT÷ç„NpqMŸN‚„ô‡é¤²X9+X)*€•Ò63‡G° $=µÐr¶S¨j(µœ%'ªk)«‚ÅÄ3,'EVW˜*#4Rm:euO[G” Z:Mlhž Qs”Ñ’8öKÄŽJ”)õ(c‡nø‚ôÆAeh¿î(¯”[:L9|û}Œhp“«½ÖÑÙA\õŸ¸ìýÖú×dõüã5hƒ“›KÉ=²CY¥ßQ þ­DQ×Ó)jdã4ã ·È9[–rE‚i\°†T}&r¥ö¢ PŽéˆÞ’ø/ûËù„<®0–ÏÇZë{åjefÙ¿q!ñžïËgŒ®¢ÒÁ=a>²ºÞ@ [Wçé¥ ÕÛÙVí^¼Öæ% à6ÈYršN\eÓ.ïZè£Ò—0j0Ú‹ö¥‘A9«ÃÓï´+-½ã²¡U F7 uEþodg£é]‚(GÛe˜rV0pr ½žI‡W©™ÄÆrNh2WÆ*?{;ê|rŽÆ‚ q'ä,kþS«¡y  ÙK¯–èíèJƒF^0*Gt‹Pij©K+ô!!4¦ ™ó*r˜^Õh¢×ÖOˆ!B„øTSŠ^X¤óþIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/sidebar-refresh.png0000644000175000017500000000077712233761325024655 0ustar mathieumathieu‰PNG  IHDR'€Õ†ÆIDATxÒ?haÇq/µ©ÏFMH“Ãz±Š–´ö ­‘¶^zsm»dPD*DQ' qÉPê ƒ n"Z)uQéЪƒŠTEÿdðPq¨ É¢ _ƒœG.¹AžáåÏûÂó¼¿5üg5´‚ÇÕÕn »$A¨u‚+âÛtÿ\pU*…ÊÁâÆ¼»Cœ -6ÁÖïc™>â 3Ä{«»~wWÅ6t$£ƒdyÊ>2Ç)$¤{Â;ßÅHñ(§ _ÒL 1²T·Lõsˆ·˜·Š™÷¸X«Ùg\'ìÿ”à Äê™g‘GÌ3eÁ@§‚Æ“›NÛ ä‚´¿0á }ˆÃýN0· pà— /SQ9ß2^1áí”Ê0JÜ fFÉü{ Å –’¾[ëñùB3þÞ‡›–×OÛFÉÇÑX™µ`!²ƒ}(ô°|‹ys=hÜÙ‚l>‡Nš$Ê}ÏøÚÞÖè†3þW{Q™³¶/¼û|ŒIRĈ°íìfp½!=K'òãÛ YŽ0†Îq®ò²MÁ}#¿.âcäç=cÕ(å¯ÅjžN wý{zè"\+ Á¾¨?ËǦÌ=á#´IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/edit-sidebar-fff.png0000644000175000017500000000045312233761325024672 0ustar mathieumathieu‰PNG  IHDR ³·ÈWPLTE™™™ªªª­­­ªªª¯¯¯«««­­­«««¬¬¬­­­­­­®®®¬¬¬­­­®®®¬¬¬¬¬¬¬¬¬¬¬¬­­­¬¬¬­­­­­­­­­­­­­­­­­­­­­Ž}‹gtRNS $0:;Cbcdefghx{‘”«°¸ÃËãýþK/Ö$gIDATxÚ]Ð9€ Q@TdQÄ%¹ÿ9õÑ„8å/G°Â¥9Ì€7##wÄ«ƒŠÜ X@,r"p ß`ùƒ%X8‚ÐÀÄ?Œ V­ÒAPõT bçEWƧòGëÓ5qiÐIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/0000755000175000017500000000000012262230550022017 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/plusonly.png0000644000175000017500000000017412233761325024423 0ustar mathieumathieu‰PNG  IHDRðçõž PLTEÿÿÿ ótRNS@æØf!IDATxc ¬ZÕ$À¤‚l iqAˆ@Õ@Õ㼤 JxjaxIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/joinbottom-down.png0000644000175000017500000000015612233761325025667 0ustar mathieumathieu‰PNG  IHDR·GNPLTEÿÿÿ¥ÙŸÝtRNSÿå·0JIDATxcüÏð‘4öB7b£À'5Æ€úIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/leaf.png0000644000175000017500000000042312233761325023442 0ustar mathieumathieu‰PNG  IHDRºWí?]PLTE===ÿÿÿ((((((000{{{ppp)))www///»»»¸¸¸€€€(((ÅÅÅyyy///(((===777PPPRRRCCC666---<<<(((ÿÿÿBBBïRî£tRNSñððN_ýuuJsùËÈiXÏvûQ¥L´>QIDATx^ÕÈW €0 дî½Òåºÿ1U‚=€ïóAT²“4¶!)ó­{ø ç…ÓQ›Jf=¶]/ÓcV™ç 9ÙïRÙï¬zSLCÄVÒ.cÑ¥IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/rev-minusonly.png0000644000175000017500000000017512233761325025366 0ustar mathieumathieu‰PNG  IHDRðçõž PLTEÿÿÿ‰O!tRNSÿÿ×Ê A IDATxcX„È QÈ™3¦F`ŠCÔ0Öº?Ÿ=Ë­IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/plus.png0000644000175000017500000000020312233761325023512 0ustar mathieumathieu‰PNG  IHDRðçõž PLTEÿÿÿ ótRNS@æØf(IDAT™c``p`@ìU«€d˜t@­!-.¨"5õøÌó Š*·:…IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/line.png0000644000175000017500000000014712233761325023465 0ustar mathieumathieu‰PNG  IHDR·GNPLTEÿÿÿUÂÓ~tRNS@æØfIDATc`h`€êÐÒP¹žbÅIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/rev-leaf.png0000644000175000017500000000042312233761325024234 0ustar mathieumathieu‰PNG  IHDRºWí?]PLTE===ÿÿÿ((((((000{{{ppp)))www///»»»¸¸¸€€€(((ÅÅÅyyy///(((===777PPPRRRCCC666---<<<(((ÿÿÿBBBïRî£tRNSñððN_ýuuJsùËÈiXÏvûQ¥L´>QIDATx^ÕÈW €0 дî½Òåºÿ1U‚=€ïóAT²“4¶!)ó­{ø ç…ÓQ›Jf=¶]/ÓcV™ç 9ÙïRÙï¬zSLCÄVÒ.cÑ¥IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/rev-minustop.png0000644000175000017500000000020112233761325025175 0ustar mathieumathieu‰PNG  IHDRðçõž PLTEÿÿÿ‰O!tRNSÿÿ×Ê A$IDATxcX„È QÈ™3¦F`ŠCÔ#LX¹ Öœ?üU>vIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/joinbottom.png0000644000175000017500000000015412233761325024720 0ustar mathieumathieu‰PNG  IHDR·GNPLTEÿÿÿUÂÓ~tRNS@æØfIDAT[c`h`€Bôª DˬËŸŽLIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/rev-plus.png0000644000175000017500000000021012233761325024302 0ustar mathieumathieu‰PNG  IHDRðçõž PLTEÿÿÿ‰O!tRNSÿÿ×Ê A+IDATxcXµjåªU@p³W00€H ’+áäÌS#E j ê ˜ Ô}?ûvIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/plustop.png0000644000175000017500000000020012233761325024232 0ustar mathieumathieu‰PNG  IHDRðçõž PLTEÿÿÿ ótRNS@æØf%IDATxc ¬ZÕ$À¤‚l iqAˆ@Õ@ÕÃ6Ä$ ÊMíKaIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/plusbottom.png0000644000175000017500000000020212233761325024736 0ustar mathieumathieu‰PNG  IHDRðçõž PLTEÿÿÿ ótRNS@æØf'IDAT[c``p`@ìU«€d˜t@­!-.¨"5õø s fÔƒIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/blank.png0000644000175000017500000000014012233761325023616 0ustar mathieumathieu‰PNG  IHDR·GNPLTEÿÿÿ§ÄÈtRNS@æØf IDATc 2Pï^%ïIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/rev-joinbottom.png0000644000175000017500000000016112233761325025510 0ustar mathieumathieu‰PNG  IHDR·GNPLTEÿÿÿ¥ÙŸÝtRNSÿå·0JIDAT[cøÿþÃÿÿ@L€^µÊÇý9¤GCºIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/minusonly.png0000644000175000017500000000017012233761325024567 0ustar mathieumathieu‰PNG  IHDRðçõž PLTEÿÿÿ ótRNS@æØfIDATxc ¬ZÕ$ÐÉÖ q¨züƒ¤ JšœÍIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/minustop.png0000644000175000017500000000017412233761325024414 0ustar mathieumathieu‰PNG  IHDRðçõž PLTEÿÿÿ ótRNS@æØf!IDATxc ¬ZÕ$ÐÉÖ q¨z8p`À‹$ Êþî;IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/rev-line.png0000644000175000017500000000015312233761325024254 0ustar mathieumathieu‰PNG  IHDR·GNPLTEÿÿÿ¥ÙŸÝtRNSÿå·0JIDATxcüÿ‘ñ?ÃGjÑj&ÕÓtãIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/rev-minus.png0000644000175000017500000000020312233761325024454 0ustar mathieumathieu‰PNG  IHDRðçõž PLTEÿÿÿ‰O!tRNSÿÿ×Ê A&IDATxcXµjåªU@p³W00€H D!gΘ)QOÀLÕa?Xž¢]IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/minusbottom.png0000644000175000017500000000017612233761325025120 0ustar mathieumathieu‰PNG  IHDRðçõž PLTEÿÿÿ ótRNS@æØf#IDAT[c``p`@ìU«€d:ÙÒâ‚M¢Òd Àê6IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/rev-join.png0000644000175000017500000000016012233761325024262 0ustar mathieumathieu‰PNG  IHDR·GNPLTEÿÿÿ¥ÙŸÝtRNSÿå·0JIDATcøÿþÃÿÿ@L€^µž(uù9d#Úk÷IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/rev-joinbottom-down.png0000644000175000017500000000015612233761325026461 0ustar mathieumathieu‰PNG  IHDR·GNPLTEÿÿÿ¥ÙŸÝtRNSÿå·0JIDATxcøÿÿA¼j=”ýž ¼9¤ä¶;IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/nullonly.png0000644000175000017500000000016612233761325024413 0ustar mathieumathieu‰PNG  IHDRðçõž PLTEÿÿÿqyªtRNS@æØfIDATxc „†:ILÒ£Cª?O]å½è— IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/rev-nullonly.png0000644000175000017500000000017412233761325025204 0ustar mathieumathieu‰PNG  IHDRðçõž PLTEÿÿÿòý%tRNSÿÿ×Ê AIDATxcX„È•¡¡ QÈŽNABÔ04@Ãî3ì^IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/rev-plustop.png0000644000175000017500000000020612233761325025032 0ustar mathieumathieu‰PNG  IHDRðçõž PLTEÿÿÿ‰O!tRNSÿÿ×Ê A)IDATxcX„È äJ89sÆÔdˆˆz„ +WaaÕ¸?Ж:IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/rev-plusonly.png0000644000175000017500000000020212233761325025205 0ustar mathieumathieu‰PNG  IHDRðçõž PLTEÿÿÿ‰O!tRNSÿÿ×Ê A%IDATxcX„È äJ89sÆÔdˆˆzfÕÖ?c4ƒ¤IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/rev-plusbottom.png0000644000175000017500000000021112233761325025530 0ustar mathieumathieu‰PNG  IHDRðçõž PLTEÿÿÿ‰O!tRNSÿÿ×Ê A,IDATxcXµjåªU@p³W00€H ’+áäÌS#E jàê' Ô›?_O»IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/folderopen.png0000644000175000017500000000066512233761325024700 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ ."CŒ9IDATxµÏ¿KrQÇñ÷9Ïá^E¯>8<<‚4ô£–Ф±©·0H¨¡1úZ‚öjνÁ¤¦¨À©HA(ÑZ © ò^óÞˆ².Ñuª×t†÷ùÀ—' 'ªŽœ~‘=›Åñ»—ôt(¡0¹ß5h»¨­~ÃŽŽNõšaº[´z‹ç¼SA|øP€NÈñÈdÌB;kµô/P»¸9„££¼¹ŽA$?”ÙÙ’†Â­‰I›]VÐ YÞ˜6 ü²è|¼új ÄUl¯•Õø‹à{ug¾(!QZ‰kºß3³0 #És*o/ t¼4˜ªˆªü¼v¢ÅuÏ=›f=µ2Y¹LÿÁ×aoà4”9˜³g$ªC8WÈ….-àÇ‹E 8¶ #ãÞ‡Ø<Ý,WE@ÖéÄf“_ò¥a·}l” IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/join.png0000644000175000017500000000015412233761325023473 0ustar mathieumathieu‰PNG  IHDR·GNPLTEÿÿÿUÂÓ~tRNS@æØfIDATc`h`€BôªĨï¬ËÝ×IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/rev-minusbottom.png0000644000175000017500000000020412233761325025702 0ustar mathieumathieu‰PNG  IHDRðçõž PLTEÿÿÿ‰O!tRNSÿÿ×Ê A'IDATxcXµjåªU@p³W00€H D!gΘ)W8IÕ?.%jîIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/minus.png0000644000175000017500000000017612233761325023673 0ustar mathieumathieu‰PNG  IHDRðçõž PLTEÿÿÿ ótRNS@æØf#IDAT™c``p`@ìU«€d:ÙÒâ‚M¢Ÿ™Ùä Š?.WWIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tree/folder.png0000644000175000017500000000046112233761325024010 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ æ¯óxµIDATxc :`ªÆÌ›¤ÀÜ-LAWcU(ÃÎÕÂæÍ¯Éæþbø¼ùÇ»ÿ0ÙÿÿÛÜ‚0Y$\JXØø˜~2|bàñåF6èÿƒ$¨Âf®û‡Xp¸ë/ƒè·˜Õz«Ùí81Õ@ò•áç¡[¡`…fÿ9€c~á)F°Õì <82•}‚²€ÎãÀzìpp¦ ù.þÑ8ã†ï"4·| `ÔFÚª,1A6OIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/print.png0000644000175000017500000000070712233761325022735 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ /›m õKIDATxÑOKAðgfgU–­QwK‚è`A­tô° ^"¼}ÏÑ'ˆÎÝ£¯à1ˆ<Ø¡‹eO¢Vf›œLfÙQ©~{xæ}ŸÝÅo(¶Vñ¾.6kOk…®Ü†Q¨A¢Sãsl,MÚø „?¶uÿôñy¦ãŠ>ÒF}Gô^ã¦Z±Ý‰ð¡:>÷'y3QOV:3 Ìì8V%ñÉ›rµýu^_Ž§ÝŸuiײlX¦|kawb­\Ô­bF%Vâm¿c^0tÆÀ"Z(YŠã &ÂQõƒSÄ1Åÿ 2H#x/»*+'–¢ÓA™;¯z¹Ïà`¯”ܧŒ è^÷´¾8¨f£Ù“[/¢“õaÄ18uË Iõ_¿7oò(‚ EŽ  1­¿ûA fÁÁS‡»IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/color-picker-resize.gif0000644000175000017500000000031512233761325025445 0ustar mathieumathieuGIF89aÄ 000MMMkkk}}}|||¨¨¨___ƒƒƒjjjxxx&&&‡‡‡%%%§§§{{{ 999‰‰‰^^^111sss"""###!ù,J`'ŽGšd*fªêHèwTÞ(:éÜi“¡ÕÙ L•Dn´iˆ4 ßQÚN¢ÈE´Qˆ†£‡@Tÿ,#J@Xw™H›-q!;tmpjWNuGb/horde-5.1.5/themes/default/graphics/organizing.png0000644000175000017500000000065212233761325023747 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ - Ć&œ.IDATxÅÊ?KqÇñ÷÷îwçŸîJ  „BІ–pjè ´´ÕÐÖ(joh*h¶¥GÐZ"‡$HŠ-Sû…Brr5ÈaD½¶Ÿ7Nð G¼„ð½’/NÃ]ouÞL¤X«(|éìè,€ÐÊ=lØJ^ö+{Ùg„Žu½[KûáøQ;+`ºp¾œP:SÅÅšà-Jý ?Œ-(  kØzòì5Ù|´rîˆBp9I‰@ˆ!âXºî´ õÕ²î ˆ…Æ`Ô¾0BWѨEgæï†‰˜„À{\æ·nÊ^¢Zy*™øÐ‚¡ g63‚†å‹ C8X€¯Þ¥ˆÑFÐïCñ~¶Ù®~†Ö…C?“͹PÇo|çTJü§Ë7MééœO_IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/radiobox_off.png0000644000175000017500000000073012233761325024236 0ustar mathieumathieu‰PNG  IHDRóÿaŸIDATxÚ­“MKQ…-K± £"ˆ–Õ¦eû ]$ýƒþA‹fÕ¦Û!°Цe „Mˆ‰ ø-Š©ãGˆ&(ê€oçæ¨È0Φ ÏfæžsÏ=ïŒéßW*•²ƒ‡d2ù¤D"ñ‹Åx¿ßh2-//cóÄßõzºÝ. ‡Cê÷ûÔl6 fr(ºÉ XÒˆãñøÄJ§Ó¡Ñh¤A–eªV«8¬Î™@h_­V‹EÑ¥×ëý%q»ÝGã$³ÓO … C*• ù|¾{ئ)p÷Ûr¹ÌbÂú ƒ/Ûy’àN’$Vœ!Ìe¾B¼5î+:‹Å"µÛmCXRAøxœ3a‡•Óh4E.$—ËÏóˆ7gE¢Œp8ì*•Jl溈¢Èâ¿cÿXŸû°œÎ+k$yÎçó,&»ë”Z­FlJa,‡ãòXo™h§)€Õëõ^ãÓÓé4e³YÊd2„)ý๠ï÷Á6°ÍNךXÀxé“×yš¢hÞ-¥­ÍT·ãØTaN€†æuÞô\G˜X­¡íˆÝ± ʽ.—à|>¶ ŠbV ¬Y})ÍXÇÏ`8yDzTb1òiÙ<ñ±H—~­ •Xîðh/%V7ª"/útmÝ~IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/layout.png0000644000175000017500000000047612233761325023121 0ustar mathieumathieu‰PNG  IHDRºWí?]PLTE???KKKÿÿÿUUUÿÿÿSSS$$$\\\(((ÿÿÿ$$$((($$$===999===EEEÿÿÿPPPNNN===LLLRRR888III<<-†+¥ ‘}…;&†8’ Ù±¬œs[zcW¥EÿZ´jo±{ ugqÿ&õn1D":xÑÁŽÏÜ9ëï ý}¶¸~¯^‘ÁÓRÏÛϤIIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/image/0000755000175000017500000000000012262230550022142 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/themes/default/graphics/image/ratio.png0000644000175000017500000000037612233761324024002 0ustar mathieumathieu‰PNG  IHDR(-S]PLTE˜´„œ·…·‰ ¹Š ºŠ¡ºŽ¤¼Ž¤½¥½¦¾“¨¿“¨À”©À•ªÁ˜¬Â™­Ãš®Ãž±ÆŸ±Æ±ÀѲÁѲÁÒ³ÂÒ´ÃÓ·ÅÔ·ÅÕ»È×¼É×Ùàç‘IÉtRNS@æØfOIDATxcÀrP€‘”GedbaçFbfåàáGfãä’c€C1.>Aa99\¶ I ;Ä¥bš7ÐTÈ¡©@¨D†»&°ã„ÎIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/image/rotate-180.png0000644000175000017500000000047212233761324024465 0ustar mathieumathieu‰PNG  IHDR(-S~PLTE¸ÒŸ¹ÒÄÔäÈ×培Ӣ»Ó£¼Õ000ÅÔäÖMtRNS@æØfjIDATx^ŽÇ A Å,ÏöžÞ{ÿÿ\&aÖ$§è&Á3Ä ¾Ä»×Ê‘j–vùW%³ CNÛöjg„£.° B¡Žà…ñs~fpÝßîWññ‡z²t™‡…÷u=-+¿¯+ò Èÿôô÷ìq•IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/image/grayscale.png0000644000175000017500000000035312233761324024631 0ustar mathieumathieu‰PNG  IHDR:˜ ½tRNSÿ[‘"µ¤IDATxcø  0ôÏšÚ eBøóÍ›ÖÉ€˜¹xâ™ýH3æUL€°Á&öL›5mrL€aåLÖ® ým@‹À «.ÞYnÁ ŸÅ8pçÞí#+™;¦v2€v^¼{qï*æi›¦VFæí=¼wõ¥Ži…á `Cç¬\9‡Á£¸¢0Á(óCPT˜;Üsÿax]ë«fY!¬¿IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/image/crop.png0000644000175000017500000000020512233761324023616 0ustar mathieumathieu‰PNG  IHDR(-S PLTEÛÛÛ’’’ÿÿÿ×q0tRNS@æØf'IDATxÚÅÇ¡0 ðØýÿçá”NLYÄ:ôíûó3\w?æðEP…ñyðIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/image/flip.png0000644000175000017500000000033512233761324023611 0ustar mathieumathieu‰PNG  IHDR(-S?PLTE0¦º¸Ò¨¿ž¸Ò***–°È£¼Ôˆ ¶Ž£·‡ŸµÀÒáÂÓãÃÓãÄÔäÇÖåÉ×åÉØåÒÞêÔàë’©¿`—\tRNS@æØfLIDATx^uI À0 Īq’î{ÿÿÖ^B27 „q×5ïT,ãÏ*M§>—ÈîBŠðº!ýæâ,dÎèFyIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/image/rotate-90.png0000644000175000017500000000037212233761324024404 0ustar mathieumathieu‰PNG  IHDR(-SWPLTE¸ÒÄÔä±ÇÛ”¡­‘¥¸œ·ÑŸ·Î(((Ÿ¹ÒŸ¹Ó¢»Ó¢¼Ô£¼Õ¤½Õ§¾Ô½ÃÈ***ÁÒâÂÓãÃÓã111ÇÖåÈ×åÉ×åÊØåÔà뜪Yâ3tRNS@æØfQIDATx^GÀ0 k§÷ÞþÿÎȹd÷æ¹1BàRà‡Ç~^c©„]“mFôuõPoß4Ã+šA®®&¹ÀχˆÄ¬ íj̺T^D¸ô—è IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/image/refresh.png0000644000175000017500000000037612233761324024322 0ustar mathieumathieu‰PNG  IHDR(-SBPLTE"0;3HZHfKj„OoŠs“®x—±ƒ ¸¨¾’«À¢·É¦ºË»ËØÕÞæîÖ‘itRNS'*/e° TFdIDATÁBÂ0±:ŽjŠîÿ_5&@îõÝ`výý¾z}íýÑ @?«géÀ£úÌ5`˜º£Ž´àèjíܺöÞ+£s¯Õ`vÖfø£t¹Ù(IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/blank.gif0000644000175000017500000000005212233761325022642 0ustar mathieumathieuGIF89a€ÿÿÿ!ù,@L;tmpjWNuGb/horde-5.1.5/themes/default/graphics/myaccount.png0000644000175000017500000000057612233761325023607 0ustar mathieumathieu‰PNG  IHDRºWí?‡PLTE&&&444&&&………///(((???ÿÿÿrrrjjj"""bbb$$$555###(((ÕÕÕ!!!)));;;+++===ÿÿÿRRR;;;---===999HHH555777PPPNNN666AAALLL@@@KKK???OOOJJJBBBFFFÿÿÿ-i1tRNSèé¡8“뻚“AÓ4º%#­"âúú˜ÞJãŽIDATxÚ•ËEÃ0@Q‡™il‡™î¾ÊVUeºË_>é“×yš¢hÞ-¥­ÍT·ãØTaN€†æuÞô\G˜X­¡íˆÝ± ʽ.—à|>¶ ŠbV ¬Y})ÍXÇÏ`8yDzTb1òiÙ<ñ±H—~­ •Xîðh/%V7ª"/útmÝ~IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/navi-arrow-normal.png0000644000175000017500000000033512233761325025151 0ustar mathieumathieu‰PNG  IHDR ˆ/½D¤IDATxcø¯÷ÊÿåÿW#Áeÿ'ýWgd`ø/óýØ4ððŒ{4£Ã®ëîŸ^!K<}>K,ž‘—‘a‡Ð±¸/Ÿ`oß'Ï“Èc”bdJýg\'v4÷Ç7Ä—¯ÅKeËåYv1aÓÉSµ¿~ýøÑ¶V±ŽC‘$ D ¸Šy¯ü¾º†e-lúŒŒŒ)(ryõµ¹@ dô¡ö3FIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tab_bottom.gif0000644000175000017500000000004512233761325023707 0ustar mathieumathieuGIF87a€ÿÿÿ,„™;tmpjWNuGb/horde-5.1.5/themes/default/graphics/php.png0000644000175000017500000000050712233761325022366 0ustar mathieumathieu‰PNG  IHDRµú7êIDATxe±JÃP†¯:ø"‚ß¡%ƒ£¾‚àu(ˆO Eè.ÅM°ƒ‹³¢‚K'ß {G¡.j‹bkÓ61I?Oî=`0|ðóÃÿqsˆA0›¦j‚l™e·¹¨F£$Kù#âòÂ+^’,dêóÅ@”7ÚNÉç%¤Ì‰™ F E˜r•+˜í•µÝ4±Bƒ^HôSr‹]Ý?±äô\zny¼pléÊØaèÒwË=Ÿ*Œ-}Ždx—ìk?åoþñ.ÏHÓÞ䀙 ×–wîáŽvK›H… ûX<Ï÷s¨€Ù[ß9kQW¡N‹'>ø¼ ?J!)P2–Éœ J-ž¦YyŽ'¦ê…Š©‰[BæÊ/5ÛWF ™YIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/keyboard.png0000644000175000017500000000102012233761325023366 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ -#> ›”IDATxÅÍKa‡Ÿwv&gÕÖA " s×(Á’Ñ…·¦SС‚ºFСC·.ù?DÿÁJ‡‚ŒèÔTí!Q,dk’­˜>hG†Ý™Üµw|cOyÜçðœ~?:‡€ý.'ÙŽލ±×§ÿÁÕc:ìóæÖ•§÷OCê¾úáåç'ö.kImÌprm% !ìÝÝÒ÷l © $á ìßÐ’5 y Cʇ£í=ùÙϤÎya훳ªD;v ä׉Yxî}óÓøú;R÷Äöï×þ%äWÐÝúH>Ú –gÆÞ$zyÆyòìPóòõÙÛçáZùÞ…üσ€Æ?†ÑB)î %5Ô[š÷Í¢Yœ÷õQ†Ù\L¸Qý㘫ßÑUEÖ OÕãhºbuùÍéŠÍe×Ü*ª¡ãW_ÝÅÆ”†"™ÊqàæÒ\Ÿþer1 ­Öz£ õ6@›ÞeZ‘f+»®œ­îð_Z—Þ ¶² ..]íèñ8³O$H ;ز*€=‹:Ì…lOHçø T6ŸÃÀP-‘IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/head-bg.png0000644000175000017500000000022612233761325023064 0ustar mathieumathieu‰PNG  IHDR"O$FtEXtSoftwareAdobe ImageReadyqÉe<8IDAT™cð.ldúÿÿ?ÿƒÐÿþ!øÿ0˜’ÿ gÿƒ‹ÿƒˆÿC˜*g€Û°l×ø¢aöƒI.IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/tablehead-split.png0000644000175000017500000000014612233761325024640 0ustar mathieumathieu‰PNG  IHDRžK"4PLTE¡©¬ÊÏϳ¼¿áæç¸¼½ËÍÍå³èIDATcddT& º8óõ<ª¸¥IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/slidehoriz-bg.png0000644000175000017500000000015012233761325024333 0ustar mathieumathieu‰PNG  IHDRÊ4ˆrPLTEÐÐÐôóðíìëæååàààÞÞßÜÝÝ©ëôIDATca`@‚ Ð!àÚ4œIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/hide_panel.png0000644000175000017500000000064112233761325023666 0ustar mathieumathieu‰PNG  IHDR(-SÀPLTERRRSSSUUUVVVWWWXXXYYYZZZ[[[\\\]]]xryt‘zt‘zu“€}tˆ£¬©½ÅÁÒÊÆÖÏÏÏÐÐÐÒÒÒÓÓÓÔÔÔÕÕÕÖÖÖ×××ØØØÙÙÙÚÚÚÛÛÛÜÜÜÝÝÝÞÞÞàààáááâââãããäääåååæææçççèèèéééêêêëëëìììíííîîîïïïðïóðððñññòòòóóóôóöôôôööö÷öø÷÷÷ÿÿÿdTû®tRNS@æØfIDATxMÍA ‚P…áÿ<]€S!ØÞÚ[‚N‚ "h4 Hó^ôÑ?ü8Ü›ã,Í@ÀcX€Âiæ i”^‘އ€RÄo¶£ ¾0ˆï#4wÐJa‚ø¼h„µÒâ„uc‚Ê`{ƒJa^˜´pkº¶N_L(8#6ʼ­-þ!÷£!AÏÜù%a½“–IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/office.png0000644000175000017500000000067512233761325023040 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ -+ægxAIDATxÅʱkaÆáç»$—DÔ:)8Ô:TApp¨ ]ÝÄQÿ†nnvp'w×N6–vÁ‚PG]bÉ].å>!·„bGéón/?ÿÛjw­·çë­v-¹ó¥ÓzÖ‡7˃üëÝSáÕ ÉfÚn>ò¸ãöÎò'èw¿mx?ýPdåίI€[ûé:MM$N@]‰©)ŠƒÃûÖcª!HE3*ó§˜?…ƒP¯®% •¶E-ÌüF†5g«1$í£Ñq©’YÙ½ùqe7S)Ž·¨Ãóý·^~o˜¹~Nb½ßh€<¾j?íà^Ô»6½†^¿»‘ÿh½x²þøY‹?‡bTº ÆJ‰K:`$HôBThJA€+£ ‹fTZN‹Æ lìMòèߢI¾±§·bÏ–Å-çé/‹xˆí¼ÐÕ IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/map_eu.png0000644000175000017500000000067712233761325023055 0ustar mathieumathieu‰PNG  IHDRºWí?¨PLTE&&&---111"""KKK444(((ZZZããã&&&???ÞÞÞÿÿÿ'''>>>888KKK...:::(((ëëë???ÿÿÿuuu¿¿¿ÚÚÚ???€€€ÿÿÿbbbÉÉÉ@@@ÿÿÿSSS´´´ÿÿÿGGG¤¤¤ÿÿÿ===KKKFFFRRRAAAIII;;;QQQ:::666BBBHHH222LLLNNN>>>öˆ(tRNS¯üü8ý°qÇáåü¤!3ôâÌwíÖnï ¼$…øªÁ–þ(ɤ=Ô®O ¾¨YžIDATx^}ÈEÂ@À‰»;îÌîÆƒüÿgpœ@UúذD•l[RçgÈCÛ²AÏW°Ö´Ÿ¤ŽÜ´,“£N2¬×ó\§I&,¨ª€%$£'Æ1>#’þ~¤éãÍ7$³œcß#Ï3’E9½¾¦²bµî„èÖ+ ¶»Fˆf·…™ýAˆÃæŽ'ÆNGøqÇ3üº\¯øs»Á¿û}ü3cNÏhæIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/map.png0000644000175000017500000000067712233761325022364 0ustar mathieumathieu‰PNG  IHDRºWí?¨PLTE&&&---111"""KKK444(((ZZZããã&&&???ÞÞÞÿÿÿ'''>>>888KKK...:::(((ëëë???ÿÿÿuuu¿¿¿ÚÚÚ???€€€ÿÿÿbbbÉÉÉ@@@ÿÿÿSSS´´´ÿÿÿGGG¤¤¤ÿÿÿ===KKKFFFRRRAAAIII;;;QQQ:::666BBBHHH222LLLNNN>>>öˆ(tRNS¯üü8ý°qÇáåü¤!3ôâÌwíÖnï ¼$…øªÁ–þ(ɤ=Ô®O ¾¨YžIDATx^}ÈEÂ@À‰»;îÌîÆƒüÿgpœ@UúذD•l[RçgÈCÛ²AÏW°Ö´Ÿ¤ŽÜ´,“£N2¬×ó\§I&,¨ª€%$£'Æ1>#’þ~¤éãÍ7$³œcß#Ï3’E9½¾¦²bµî„èÖ+ ¶»Fˆf·…™ýAˆÃæŽ'ÆNGøqÇ3üº\¯øs»Á¿û}ü3cNÏhæIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/unlocked.png0000644000175000017500000000066112233761325023404 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ 0¬8“5IDATx•Ï¿JBaÇñïsþ˜¦"–åÐhʼn4ÚÊv/ ܃ˆ†(ð*Új)º‚†¢µ¹"‚*šj(©ÀJÑã9M½¼xÈè»>~ðZ«æ 9 À㦻w»‹JƒÎVd=Œ¸´hn×6pª=î$ïÄßxoÙM>ªg¨Ò¥.›µ|°®jå\„X)‡S‡ù%©€?ë^Ú致á‡T „0ÔÝP‡²8â ÒÚâXQÒ  1š)Þk_Ïø½Å‰óÊ×¢-&¤&QìÞgø|tÏá`.f àEƒZ.fuyކܬ*á}Ú¹€äÎô‡¶dçáYèm,¬I°°ûC0yZƒøLA©{)€(zR×!'¿å ÿêLC%÷tIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/0000755000175000017500000000000012262230550022521 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/clown.jpg0000644000175000017500000002226012233761321024352 0ustar mathieumathieuÿØÿàJFIFÈÈÿÛC   (!%"/#%)*,-,!140+4(+,+ÿÛC  ++++++++++++++++++++++++++++++++++++++++++++++++++ÿÀ¾–ÿÄÿÄF!1AQa"q2BT#3R‘’“±$CSUbsÑ'56rt‚¡ÁáñÿÄÿÄ<!1AQ"aq2R‘¡ð3S±ÁÑ#4Báñ$r‚’ÿÚ ?Úš"Qˆ”D¢%(‰DJ"Qˆ”D¢%(‰DJ"Qˆ”D¢%(‰DJ"Qˆ”D¢%(‰DJ"Qˆ”D¢%(‰DJ"Qˆ”D¢%(‰DJ"Qˆ”D¢%(‰DJ"Q ZP’¥¨% nI;Eè›]dúËØn †© ˜àÜ8c Ù‰¨²VFÃmÕõ'VT3=²ù¬O×Þ/ýÌïáÖ¿OJþ¬êëëþæwðééñ§ð•gP²Øþ±b—tÉ.K0K;r’8xǘ¬ÙY¹ÙE©áºØH³s_¢•YrËé·—m¹Æy-•°6'§ò­ì™ŽØªÙðú˜0‹¬Š®p73#Óó‚²ÎÞ«@§”ìÓðP R¶]2„Âd’¬f3…Çcû^\‡­@“k]f ø­ì¢qng(¶¥áí­7Öræ€qÇ`Ï(ì6à_]ùtù×±â &Î ) EÁR-(ÖkFs!Ë\¶WiÈI.Ä|ìGÚá'®ÞGOuÆöVOÒPø‚¼ÌÞ«ga/²~ ô”ÆGþ ¦fõNÂ_düé(?ŒüALÍê„¾Éø'ÒPø‚™›Õ; }“ðO¤ þ2?ñ37ªv{'à»™BÊÓ‹r”,zËDö‹¸Yw׫¢%PžÓyηZbH,Á’…-àƒ²–A|ª¶¾G 4l»n£†LÓ8]Àèµâª—}d¢%qD]ºë@øN-õ Q×·!bæ4î.¦Ú?b—“çL;%o›ŸòòVI(yïºÞõ%€6"çnvò\Gb26¡´”¦ÙGxŽdòò dÖ²âÔµuQßo/JŠ©@X. ‚ su^ª_ÚaMñØëjû `În2>ß÷»ã½XR˘vN:—RÌÙ™ÈÜ~Ê jàì–[Ì—Kn§‹’Ï#Þ ¸9Ž,<—Öb|51¶¢1£Åýü××½HüCß¾kÌÅlì™Ñ=êGâýóLÅ;&tOz‘ø‡¿|Ó1NÉÞ¤~!ïß4ÌS²gE’Ç2;ž?xbåo”âd4z)D…Žé>•œr¹ŽÌ WA LF' Ü-9ËYÌñ¦nŒ²¶IC­«î¬uØ÷{¢Vf_(Å0÷PÎb&ý¢·*ä¢-pö§ÿœÙÑ_óUˆúÁ}ƒ¾êO0¨Ê­]ªQˆ”EôÓOÈu¶!£ŽSªe>j=êê}dƇ¹¨µ•žHßZÚyòøoäÔà8ëXž!ÎÑH+ê Ü-ÕsR‡ë¬æ“;®¾a%îÜ©j[—EöÚ‚Wñ Ò P±úI=Ez a#ÚBÔ,ÊÊÖ#ž]q¶”…Gã÷¨¥*ß…*û‡Ö¥T4½‚oq] â@þ¹š1û,yuë´ Òˆ”D¢%mo³aÿ‡IÿÈ_󫪺÷¯˜q_õßú…jÔÕÌ¥k‡µ?üæËþ’ÿ˜ª¬GÖ ¿àﺓÌ*0séÏåU«µìºÜ[À+ÝaJš´•T|‰óô¬šÖŸ]Á¾j§Æ©èœc ½ãåæzø.˜SD©/E[F˜ÉÙL;ÉUœ°˜Ú Úy…–ŒCˆ¹Ñ°exþÓÌu]¶æ®wÛºíøÌDLq”>âù%?®±”ÁM–©ÙA:uU˜‡¾:G¢h~_X¯Ð+C±¹Ó5 T›ÔFJ,Í»Nriõô×`¯Û[Û$^Ž 6qçÐ~‹™Ä1 ëæ l6¹ýUÿ’Þ#cØÝÒõ=[G†ÉPå¿„|#ožÕ¦&¸5CžLÑB´.¹æ˜Lé÷µ!É‘¦øiq)áâBº=;Vú¸[€jK+œëb(ì•!½DVu_eú„q}[³c3›Ž,·W!g…ÆœVû.œ=9múêc)Ãâ.ªÓRñ"ÅûEa(½ãjºÄŽ•]­§ˆºÒOˆó]ÀÛ¯.”¥—+²ŠÙ+nÑ#4;øªYë¶5†Ý‘ØçNU™ç 3Ó!jŒ®Ç—mùoUÍ«™ó¾’vŽÐ ¶Ú_ëuw‡âO£sfc‰ÆÎ¾¶ñ÷/·ÚŒßˆT\J¿4–þ"ïH­ñ±Ï6Û¯‡šîêë!¥‹¶y¸#Kj]佨°åOÀLøÖ5&.ÅJmÕ~T×aZMe_Ù:^÷†Ë›Õ8‡Ã æþå·Ífs*q²[R 6¾­íçRe…Ñzx«ì;‚¾#,fÖÜíóð\C¸Ã˜â›Žø+Iû*äUòó¤K»†‰G‹QV<² .G#¥üº­Áö|·K·iäq1°ÙyÅ:ØßrRO-êÞ‰¤EªùßLÉ+ˆo!c欺–¹ä¢-N×¼’Fg¨Ìc˜tÌ™nACòJosÌú ºUV'%<,íjf‰] ‹TQ1̧h.'žÀ,5›M.ò!qßnaÊR¶,²7Shó¡&¹*Œzµ; ‡SÌ®²Ÿ«švâÎ>©n–VE–ÛÉnj ±Ìfüù©gº”{“\åMD•%7'êÁWÓÓ6&e:žg©QìçO­ùp2‰\+²QÂܶ†Ág·˜« 3šƒ¹ë2úƒËÉE«¡kÎxÍÔ.Œ~ÁLp›Œ‡ÞR¤Ê¥ËOßWÝJ–õ²®¶\f±hÒýÑÓ©+E=Ñ -Wö•¿Ù¯Zj›g¹1pˆÔVƒŽGVá;+r>{UÍ+ c ªizêî·kzW¸¦ðì2"¥%É-¤ìž`zÔÒÈk)‘ÔÜ»¬'ŠŒrÚügF¼ãs‰z ‹|Üi|ÔçÖ¹.#pô¦ÈÐZëoåÓËšºÂ£Í˜ý®¼˜Ö gÇn®¾Û¾BÊàÆ UC×Ò Öcq‘m;Äsúæ­asb§m(:{ùò–©K %EA}÷ª´[€ÓeVj.™-µËÇ7%)7E4m|~„óù×S„ã=3ÅA'©}ïÓÉSTE4sÀl$wˆ^ü“L,Îaj·ÙRn0R§bÊ'gWR|G¤â ‘YÚÎ{®ÐŽ@x/&Ã!žŽuº¶ýžsûVA„[mŽÉf=ê /DqÁÆ®E`yúKÐÑ—eËÍ4’È_)»ŽêÝÅdµ*ÛY5J6ŸEb3P¤M½NmF (FèRÛâ=‡:ÅÎk\ã`­iq°ÝUÚj•j±<åÎ; ]î/®LÂÈæ¢£¸ËmúW˱ÚöÖÕ™nÑ éî]¦IØD3 TŒåTêÍx/w#l†Û°©yØlrÅ“Ä{'~¦¦áô.­œD ´¹>u²¤Ak]ymZ[{—,M˲ùen‚§ [>!G JÏ-…w1ÓÐBÐÖD ºî|W4d¬ß=¯õæ±×] ™vŒc\sÙÒ"…ñ!§#¨å¿™­ðºšgŠ Õ+*d^ë0­›5©›u‚Ûjx59XK rCA|\;ì­CεºW—µ´Í,Ê×L#wM¯·f,q£]"©.·""8T¥ψtáô©T³¼¼4•¦³n‹ãEðÌRë¥ ·LnÛ6[ŠsçRx”A<ɯj§{^@+x&ü‚³n6«}ÒÙôeÊrm¤$ª$ „ý‘˰ò¨M‘ÍvaºœøZæåÙk÷´Î'a³[qDØlÐíbSËKÎGAô?:´£™Ï¾c°U³ÄâÑÕ\˜þžb¶;}¥´Xm²fÅŽÚ„×ÝKQñžÿ:…%L„èT˜i˜öæ+œëºd6ö¡Y¯LXØãR#+®ãƒo²<ê9ŽžR CsXè·»·H4 #rÐËøeÄÞ¯## +éWâJ–;ð`T˜çµ€7¢Ðø&$È]sõîP¬ -»GËea™So=peņ%);)@søÇ‘pkÇpX¢‹Òéôo1û+<;y“²—_fîv#s±ê<ë’]nwÜtE_jf u®UæÍ¿E𸠃'nd(ü»WEãSSÌØ¤uã:kÉRb8cÂö VËiÝÎUç±\g„‰rb6ã¡) qÏ‘é_J"År ÝC5rm’.IbDé1X»<Ûˆâ”SˈqvÈñTu/½˜%ƒ{|´WØ$±FçgÜ죉R7mÆÜOé6®$Ÿ‘®‚7]K׌ÍÙrh²]öë”]Â;÷9 ÇaņRã‡dñ«’A=¹Õ® JÐì¡b. €ßª›ÉSq듞n+ ¤­×žW ‘ß~•Ù5…ÎÊ¥kY`pœ…yU™ë°·; ¤©¨^1øä´?µ#°=«9¢›^åj‚gc±®[áçÕI€Yý9;ü«¬;0Y’mÈ®¼·Vã³Lál.å+Ã+vK˜ÍVa|#QPâjArŸ?:«¸´"ÿ’÷A¾Ø3í5uÜ’j"†R âÙÙL¸>ÊÒ;ïåP¤¤«Âñ)[šç»â9ƒä½ÇWH{MÂÆéËõÁÇr RÁmïÜ}Ö¶2Ÿ°ÙWp|«¸‘͉™†Ž<º@Ö™a¯ê¶Yj PáHBP„‚:UDÜÝ[1ÊÍx²^[ÍÅ«5’mÖC*ÔTƒà¤ìV£ÓõWŽvQ™o¥¦uUC)Øl]Ï¢¤ïùMï#Œ–/’bñx‰a‘Â’NÝ@ªÉj\í.¾ƒG„ÑÑ8º÷­kŸÍB¦b–i`x‘T…q!dÏZÝ'TÍu§‡ègs×–›¬-Ø\°ï¸lépöPKéñ =·¨>µm‡W§§Ôò\àl¡`šœY»ú­£Ó¬‘vl½ ~S©(𤧄ÇQ·nUåD}›ÈTÔ²fm”ˆó‡•hR”#T4Þ&x¨2ÁÛUþxbÌ@ä±Õ)Wq±ïRà©1èu ô÷ï±Q¸/¿ãµ:ÝŸ2é¿ËO†Ìé ÜÙAG¨PëP¸ŽÏDî´ÜŽ¿ëuž#cŸ¿­Õ‡¨¹_ô>Ì̆™D‹”—|8Ñ– ö/*äð\)ØGd/” HßÀ+üB»°hË©*S3+£nµmÇ#F‘Ä–ÒúÁ‰ØZì£ÿÎWHââÖî:ªèë+*.ÈÙ¯ŠÙí#ÃßÃqsá8ϹËuR¥ÈÛ`§Øz è"cc±°Y h¹Éç<¹Û•6¬Ö)DZѬí¶î¢J2ËÜ,§‡Å@Vß*úrP4¸_R¯¨àóPÖPÛF; 2V6W†ØcÈùŠ·m4M½‚–oTä.^)#Ì­øÎ7˜Òdì§<‡„s;N»u¯Ÿñ#ii\mÔkñ䪪™qbÝu[^WnÃ0Ä]l¶¶‚~%ü úD“åÖ¸>ü®ÓšÜ2D5ÝV=y¶&iúÍqºÛR¶ÚR@=ÆÄv­ÞŒ£Þéu“,ƒ?X$s5û‘Ì틼bWŒ6§e¤xŒ!*áæ:üþUVæa × ªµ¬•æÍØýróTwû!m­*ð(¤ôPê>uO#ǸX¯¢²Xä£p#¨7]•ŠÍC5Jå5à ;Ò'Ëq*BI$óä™5y‚Às™ÉÐh¸®.®gf)@ïVÒàc8E–И¨ŠûL…Êi*âü±êIó­óÉä®N•™ZJ­ó­`•ÿ?Ämé‘sŒTÛ²$ í±Ød…oé[;8âŒK1°+|1MY)†œ\,&œêüë<æqÍC [:<+šˆÙ)=—·"7î+aŠ9ÙÚÀtèµLÉè¥ìªŠœk–0ƹ™E‹µ‚ìiA\Hq°8¸yv=ˆÞ°¥˜Æì¤hV™¢ÚUƒÊ“m7‹Ô‡f̈xÅß²Ê@êuz×ÐøG¤Žš6Ø—)tõ܇ùRÙ.º¦ÊË‹Sˆø{ƒØú×tÆ´¦—hãu´úp]϶IzR$¾ZÇ·Úï¸ |»€CTö5¶Ñs• É!YHj½iJ"Ö­ej$½öæÊO#_HáóÿA¾e^Ñ}ÈóP‰/&4g¤-%iee#¾Õi<œeý”Hh.<–oÙ~·2<®RÒµHpFm NêGÞÜ+ËnUñlj­Õ—;š«¦&I Ï5å×ÖÓqÕ‹M²BÖì#..8QáßÌŠ¯|®†Ò0ØÝNÂ)ãªÄr‹·UÓmµK~;©´Û’ÄtþSÝÓ¸lzÕ!–{¸keôòúj`ØÞàËì56•Z¦Ç½b¤Æ¹0÷ŠKJ).§ï#ÓzŸMˆ½®ìêvÖòñ\î1ÃŒteô­÷¿Ÿ‡½lFfqs[¹ChÕÏ L5,©l(wQ>u6h²F ó\TRLRzÃqú(¾w¥)¼Ý%]ñ{š¬×Y;Úv]=ÔSØÓ•mbJþu/ÃÆxƽ~Å0)« ÛÉÜÇðUf!y{¿¿1ˆÉ-É!ªûß÷ ¤Š¥ñŽÍÇAõeÔW`”•¬.C‡ä|‚f·Û-שŒ\lSÓeJ¨Li;­õwJÇoJ¸Š8æoqÚó[I]E!7Þ5åò5ÿÜq[/!;χÐyÖÏCwP¡öó{'à°¹®äw¦$Ûñ í ¼­š»ÉVÎ%¯0;(Ö·KK»˜ŽAN‡Ä*œY”go¯²c ÷×$>½^^_ˆ¹.µqUlõÓÔœ¬î· ]–€ÒÐ7´˜‚î§ô[ §˜‹8T).Q!¶eH;pÇG]½Tú«zFÒ0Ë.…søÞ0ìVFÐÑ6í¿ÿGö ‘ֹˌə4PV†Ùió¿êbj\ÚṲ́iù+É„¸ šn}ü¼VÄ[_2¬¶™ )ØM/cÛqÒ¶9¹N^‹‹ŠNÒïµ®oñTo´º­NaÈ@kéß—Hû~ÿþv®ƒ‡szS:fPåûöÛ¯ûX—8ºû+vVîÝ_ú¤œ IPy{§~cŸzภM'À*LCï}ÊÇ®qA\)A)*Q nIí@/ E©92’¬¦ò¤)*I’­”’?":×ÖhÁу쮒/»o’ÅÈgÞ#>ÇGŠ‚Ž!Ôn+9ãí#-êvÌ z…öW¿³ËÖ&ñÙðé’Á ñ9·% »l9×Å1jrɲ¨¥pk‹J¿æDbã\ ¼^ë1•2ï ¸NÄyöª–»)º›33¶Áj…º ü/*•Šß¦ÖÛ¾-½GâJÆû‚• ·ÿö½Ä¡h©‹Þ¯ø_ìÜhå:¿QþÂÙí>ÔÖ/¢ÝzCpå„Û¼_¤{“öO§ÏL¡Å7qú(Xß >™¦js™·Ôs<þ´Y ‡M,·„N”Çw @­…n®Ço*Ù>  ¸nTj&«¦,Ú±º[ÁT÷-7Ê`<Ó^â&•'ˆ¹AII¾-¹Õ¸MC‚þK´‡ˆðÉÚ\]–Çb5ù]y”“·Ðíÿ£ýëWÙµ^É[~ÛÂÿ|ÿe“µévMrŠ]u¦¡„·%ÝÔÜTˆ°iÝ©(ÕS‡Àü —iÈiå­•¿cÇìX¥éjRZá@/ÉtóV÷û ¿‚–6fù®¯­Æ&uЯš¤µ4,šx‰bÎÁâi…Ûï¯×ÓµsÕøƒª•›r_AÁ°ˆ°¨Kœ{äjzx Ók5#?nd†€@^Û~{u©ÔØ•M;K"y­ÑÏ#šWƒêïÿ göš‘öÝw⟥Íí'ÕÞ-þÏí4ûn»ñ z\ÞÒ}]âßá,þÓO·+¿§¥Íí.§X²’R«K%'¨;Ðc•Ã^Ч¥Íí(Žo¦óm®Â¿i™n æx ý^kDóJ‡@¯Z­¯šJíjb9óXš™AqºÉâƒ)¹—ÆÚ´)¶‚¸Ó1/%Õ÷ðRI‡¼z¦ê\uÍþà¤(³Ë+A)I<ÈW1Z½n‹s«bEMäo–êVxÃy¬Sjá…{´x’’¢HèUË™WsÚ­)éÄCÅVI)yVì}8ÅcÄj+†a¤% Ü ¿Þ®!Å*¢hk`ÆÕÌÖ†‡h?WX·øK?´Öï·+¿§¥ÍÕbïZO\^al!Ø!°B’ÁØ/ç½J§â:¸ï_ªØÊéZ5Õx>¦,Œ›û·ÿÔû!göŒêbÇøÉ¿¼)üSSì„ûFN‹ÙhÒ<~á!âôÄɧÎéδÏĵr³#lß°}|Ž+ ´%´%HJ6@W>I&åB&ëê¼D¢%(‰DJ"Qˆ”D¢%(‰DJ"Qˆ”D¢%(‰DJ"Qˆ”D¢%(‰DJ"Qˆ”D¢%(‰DJ"Qˆ”D¢%(‰DJ"Qˆ”D¢%(‰DJ"Qˆ”D¢%(‰DJ"Qˆ”D¢%(‰DJ"Qˆ”D¢%(‰DJ"Qˆ”D¢%(‰DJ"Qˆ”D¢%(‰DJ"Qˆ”D¢%(‰DJ"Qˆ”D¢%(‰DJ"Qˆ”D¢%ÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/kirk.jpg0000644000175000017500000001004312233761321024164 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ  ÿÄ% !ÿÄÿÄA !1AQacq"56ƒ‘¡±²#234Ubrst“³´ÁÃðÿÚ ?ÐR?LGéM‹ie0EÌ[Eó×Å‚ȮUê¹bË7.zÁ˜?¾ò ¿üKâ?PEÛ-ËÃd?uŠ»bꢗú¿Z=c~;N Ë IùŸÛ‚ˆ3§¹Xˆ¸'æÖ^ ³=9+ØËÃßu窀×Ï®÷K“©i8)Io]±¨›åãï=‡ò_¹g&VÜn¨½ØJÁ=û$™ûC­[ús¬]‹}ËZ¼b‚äl' &Å@Ò’þ„´ž¹TZ÷÷7%Qú€w\õðÛ2çž@5R´ÄÓIA=y×¥ª§±»@ÔVÝ[-ª¡¡ÛP ÍÙ?v‘«§[¬Ž•~šõØê`)p|¹ŠËU[TÑÒÐ@Xñ74T È]Õ\ý!ۜغAnŠÔ‹ÁµEæÄH—èWc;f el8¥¶µ¡prÛ“šð¶M¯oNòŠ4=ß,yºÂr7ž˜÷TJé]±Y…ÂÒWDfs°ßÿÏzáñ¡õ½}Ȉ-YáÚÍ‹F©Ôj® iݱ^&õT½¦Iת}?üÇèn‚ÜáÓy½“ý¢Ú€¬N«nŹ©@¬»bå]¼¹Fõ ¹®ô ·xfámÕÆ@¹˜ f¿Äs´ræyàªÇ1*l*¹à™p€d…-¥ÊÈŠ,£@%j‘›‹e°áCEÁ- UÄ5ˆ@@$'NÌã«C‡B@<2BçŸÐƉòûŸ™gÉ.˜Ä5v0Çdé º\ÀÓŠ³cÒ½p#˜UJH*ÏÜա긆ZÂÓEÒAÔZò´Óåý×ý^ßD~} è-¹Bo>aáT€÷>A8¯6œÃ=7U ÕìV Ÿ)\FõÆÜMG^ªII³—qšá#\Ðqø÷×±pKÓa벊텸JãfÜs¯Ö'LoOêtråþ„%9®KÚ„¹¼¡7£P Jv\‰ÿg.5œÐ»Î ¢Ôøµa|·ì §ûhORö>ÑÄ{ IOÆü›§d ‡/ϯ$'›ªòfmø²ie»)ˆQwœ½.d9¦½éÉÀ1:x¤¬zlÇ]‹Á#rT‰˜‰dnh‘y’#*•2ltÙQ“˜Îè¹WUY*Äc¦Ši˜¤0¢ aªáTXPI¶ûj7!7ù󃼶´;IqX‘ÁˆÛL“îçš[Í»+%¶—zgxeƒu6“kyßjÆg˜¬Û1–KzM¾ÇÈ‘›ë èdÈÁÍŠx‚'2|ôÙTr.+]5Òâãeõ;öÜe_·)í;b„…XÒýí'¡j¼ºÜ³®Ø›sã¢ÁZÀ6´Ü½e0;…= àŽÛ~Ç…¯'Ÿ1??øÛ¿m¾n4I¬ôÈ9ov¹zGê'¥è.S’™doõËE5›úé´SÏ\pÜYB¾Ú$¿$d1ñIØÉߤzJ%.¯×ZLw ]ù×׬üÂnœÛKu?&Ê;wK”DÀÝH— Å8¸ê**£D©ÐG!(±]ÂéÛr5oÞÇ‹UÓ|î©çþÝÁûÏiz²µ&¦ø|ýÔ[îî‘ÚÈMË‹óÞ¹Ù'’¾‘pSb+P&àŸÄ[5¢«P„:B„ÑÎ=~õíáw½±ÒÞ¸ê¿$ëk¿PHlº2<äR-ó‡]åò˜A‰Íຢ°ZÙeqdH•B#ëËh";=bF U˜–öd¥j~{æL4׺÷ â§9¥Òš³Øœ VçEgÅ}AJc·"d#2ó7óØvNša'&&ÍÕËÕ¢ßrˆÞŽ‹â—•ÝŠ³¿Í‡ù?¯²óõ£;(°&ê†= ˜²JÓeåûË ·ëtˆç™rHþjáÁá_XòDé-H ªÌ•“Ũeèëžž:Uñ8›™±º}ì8º¬‰e/k) v*„‹å„)?º–R¬4FÕRsWe÷¦í­‡[¹-°± -÷Ôà}B¥Õ ñ]ëÏNEVñ~#†YÐ9Èe%ë+Ý™Qæ]d*ùV k°©ZXß::ÀÎB½ÍÄͨ‘ÔjTè¼ïéA—üÏÏ9ŸJÖüì=†ý6ÔžAËù‘>Äß§=î‡ëÓì"ó^‡ ‹ç£—Vg3tŒìੵóõ+7f$ªX¯½Ê¹³µIä· Öí ¯,6wŽ¥­‹EwhêHD…¡·Š´ë˜œ"éF:ðY¯__Áñ(uÞ Ä•ùnoö·äÁŠtÚþ«ê Ó^£Mq+®íŒÉoº¬[ª « t1À9G’ßì0óàŒ/ÖY@D"嚟j¦Q͘n`ª]Nô5Ե䥅]8ýôzš&b=ÕR—*UAg·qL*J,)«¥ž*µ€Ì“¦ Úí¨ÞÛÛQÔA¾ÛØ?NÀ½ …î‰_ÕÜœwÛ– !sÇ6[½ LûœŠå£šÖ‹SVmi{Yç-¬QêF]ö¹ˆôÄØ×Éêe?¨I¥©gê'çî=f¬²W±Éreó@¹lðí˜åç! KÏ'”°„‰5Ùdi)fšKôÆCkydÚ\ï“åÊ%6Ût~Öôú>“èµHsHªžÄÜXÅk]}QÛo9ïÖÛ²•­m`ÍhäÄÖäŽÕpW£‚ ]Š­›*izÖÅyëÒŽ½Io ¹cmå¡kb_µk6aª~K9ýà÷ùÇ)ò"&ÝuˆâG{ï\¶ñƒ¸«üõk(Ýû¥Vþ’þ·`̺8J$âÈ wCƒ·Šô «™#«¤ÂÑÛêîþ•Û…=½m^á‘=!Ln PÄ¥n9¢Ð¢X -xÙ—ÌÙn®k¯AplwÈ֛Åz-¢û„rì?Àë ¾¶ôú[g%›qN™ÒÁél1¥™Õ,a”•å˜t–”â–„±×¹rˆMhÐ=ZØgËEG5,S¼ü·Š¥)â‘•ŠD¤XM˜«iÄ’U{€tUƒL×”U±LBž‘ðí ­$I"ÒÌ¥N .MíµÍÈëÅHéS?gó>³Þë¡¿šè\&§@g"_¢—tôW6.;…«¢f¯WÕÎI¯Ø«vh(W%²ö±írx6'òÌ>n7Øûw¼û‡?ó.ügÆœÞÇT%¥—Où›ΠˇF,5ÄZ¤Î5n+¥#±M(÷¯ap¥7oäÊäqéç_&ð#¥zyõO÷Î~ÀàA¤¬:ˆ6r£ÅɹÅ&º"sJÁgbKì*F$¢ÉbœõMè,q ZÙ¿OneÜ{)„š§ºkµNI(ËÝWù§Ï™è§-œHäÜÜ€U0#èQØC´ì=5þ<Ü1 €‹¥p2Õ–|,a¶_„àyé± :iæÄ'¢ViYÖÜþZ’úõ;ľ¡¬KqJfŒOGŠùZ§1IJd¨5 KJ’J…Khå *Al4– „ܬƒÆ&eׯ~|¬úØj_ùåwEÑ-¦G¦Ë'¢v'Ñ<ûK4Tª^‘мÑtn–vÞ…0FG/ŽÙˆÃ»UÎCÃ<Ѓ{·p'Eù‡“¿÷Óà¹pBÍ1§ö5Uià$qÉס™>¡ÕUžúvò¶â ”<¨Ê fn] - !¨šÛŸ{—HW!Bç$_ç\Us™±óï?ðV–WHŠŽä6”ùv$f« ¬ñ‡…€.±ô½`cäk/ByíÅsÅØÛ¨uÕþ¤¾ñ*Œ¢´’ÛÎ|Þœ©eEz)©Ñ«@ÄY”S¤*A@—7KVPæ×¬`\]Šþ*^$p™b„¯Þ] È¸^]]˜«g†›ÅJÆñ&˜ù ˜–7#SÑ!]ZYBóÅÛË¿;QC…åc5u+ïTõ4 qÂlc“[!Ô9²þU À¢¶fx£š ¬A,zK ®ˆ»´ñI®7Žm®È”–ö—Lã|ÚÜýìgo˵Û[o™ä>d–ŸÔ«Û¿©Wù>5`WëAüË shµœâ×ô¦Ö1\‚qâZß‹|h6¨i¾Úqé_ëƒäÿ'ÎuÎoÑõž‘ÿcs6uïOGfý½O³èón¤” ƒôÈiøbû2ckÓñéöæylcOÏó3I4ÆòŸ~ø×\m¶~Ü’=×[ ü•uœŠï%õuûócÝU;“aD˜{[ãiÆU-fÉEË´¤‚È26'º2Z¶e’]‡Â ü“}¡Æ³ð›ñ O×?Óâãúÿ¤ôR¾ò,%IEÒz‡œ-ôX¯µ¹õ²\Íüñ.ºX¿&­V/œ]_3vc¸¿%¢ÀÑŸi. ¥4\Òâœ3”Vh•š~ç`Šøª!¯N<'ÔëÄ"ÂÑšØè+X–˜‡ŽŽ[y6‚…EªTÒ*änG1ðùÓ+þ.?ßê~ËqŠ—òºØÓv8ÏG*a>ÊÙ›lg 0[ÌѲwJØ 0¾fXd¦¿<ò”rÂÒêå *môÀ€ "¾c*x,§n–H–X?›Ç÷òb–·û7ÛO¾Ô}„,íöçu)O==&Ïû&µf–¾6Ä2o¦O‡È¹³ázl\o?¿þI>¥âÈ‘[g;l0~Ûmœçm³J¶sœç?îsœæ?÷9Î÷9Ïþç?‡Ãä!Ûø¯‹QºŸiúøÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/maul.gif0000644000175000017500000000202712233761321024152 0ustar mathieumathieuGIF89a ÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ, ô± H° Áƒb[ á … 2lHÀÈ 'V¤xcA9z”Xq…I“%G , ‰DKH UN4 é% Z0gޤX $Z@!ù„DÑãÌ›BÒòI‹„Έüd†J)*f8-6Œ8€KfN”:aÖR«Eˆºü´¬Yh–%q(]¯0‹fäX“-ζ55v4XRíOºHIDÕ{°°Zœ5›¦eLxrd—H‰¾…‹pãDÌ6S&éù¤é“! ɺuÅÆ®co4R¶k“*s+œ]®ïÜ¿ƒc®RxïáÈ‹¯Fnøòà[GëžN½úô€;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/smiley.gif0000644000175000017500000000212012233761321024510 0ustar mathieumathieuGIF89a ÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ, þ± H° Áƒ*\ÈÛŠ* ®h¨ð¡ ?¨PI“†J"E‚©`ÜH’dlj«ˆ,ɲddž*ý´œ¹‘ Ê„*W¶ô£âbIn\AEgK Èܘ4(B¢~–¶l @…FiH„jÔ%UT6úi*T T©G©ªØˆ*ëP‘hYŽ¥J’JÓ‚\ãºÌ À¤ÛDáÒÛtmÝ»€EvÉÓgI?vA*Ö;¸%*­‰WÞŒÙlѨ3{næXö¬^ W«0¨â³Þ±V·} ™²ÝØ–# ÈJëÚŒ«¦f t oÞ¾'Óll5cO§ØŽ÷îý{±I*=³Û4>ÝJïäš7.¿ÜÝý{k¸”MV9(Ý»ßçóm[Ö`û÷@Ïׯþð£ÀãîYä‘h A;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/grover.jpg0000644000175000017500000000614212233761321024535 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ  ÿÄ0! "1 A#2BQRaqÿÄÿÄ; !1A"Q±#24a5BbqrtÂð6Cs‚‘ÃÑÒÿÚ ?ˆL†žµJÃLh›,TKÔhýÁ¼Ö!è&@ûˆÙ0¡yIŒDIu êyZÑ zM-!…ÇŸßñ ˆ)3bä"9"‚Žbc§sô¡úud¾¤Ýзo39kz[föóþ¡oN¤¢ÖP´ì>¥ZZcfºÚ Ô9ËVÁb^@±ÅTÍÙò©$ §ëýÚ’ì3n6+NìžÜéü&•Ü<ŽO'Wÿjb³Àc´}tžÓ)Í_!e®|2–nöœß½^–Fý%¶¥ ¬H†?=‹ÁƒÒIž¬‘ÇyŸ†Älc*Ë{’ Ø^Öé±Ý ½L-UR ÀŠ ,@3¶‹}ÂâÖ㥶’ôæ³Ø¨p Ûô·ˆµ^Ä2=ž©:ÇÇG”óC11ùëŒËeY—·MsXDW]TüÉ©áƒg,˜õ™ AL|˜ÿ3¾>Ì»<É÷ ôïï¹-ËÁâ×§v ŸVŠÜ|½9ß»SLßÉepTn’’œˆàòa‰Ç¡õÀßêŠä¼å"irt¶AÑZãQOªa,LD%mà´×òˆ›Np¹6%5Â"&tð$Åqg®¢ŽuáÓ_×qKB×µîä ° ºÛÇÂZÙ0¸M0£•UY-'L ·8QuKÛ)æ@;w6ŠÙíìÛM§Â÷-§ªdqØyÔèÅáµV5 ºý'é]³þ¯e¬Y§jb¹R£nÉ ×WJœË•†m ôÎw½ÜþøFülôê ÞãíÖÓh\¢Ñ{‡žÇþë?¤s—²k¡ko¯çI*Œ•å7¯;…¢^Ëõ‰¶,ˆ‚êl¾ŸÝýowb556Û]¦÷£e·h5VÕoN™É[ÑYd:P»ŽÅdýA] °¸`²lÕ³uô¢»r ¤@õlÆÑmÅí¡» Ò»R”µWi齟Õ:oLhœ…Ë>BçåHôI½¹A 'uгV¥Hö² ŒosqšÈ¸4´¸}nsï¡Ô£œ¹€ òê9‹“©Ó]«JYájÆ©ÃÓ"¬ôµTåB2v‰˜bÜÆm>½¬í™º2Ã’ÊÓ“) þàj¼&JyT*ñŸ\ÿ³㣨^È~¤]Ôeû̧ڶ‡U3¹dê®ÆªÔÖ^ºÄã$ì *&ÃR"Ǧ­e4à˜ºé…‰Ð¨ì“{“§ñŸèüVú­wö“¿»×yˆ©ì}G{‘±ý²¿Ó=ݾÏlnä÷³‡–ÑzC1¾4´¨ÐZƒS½XÏØÐå¨ñÙC3yµÒŒ•ðÏ®íJ0Â+ª£$*9õ—UÇÜf§ìçqv—5ŒîfŽÏk}¸K»‹ÝãÓ–´u{ØÅE°Ë˵@’©Y¯öÓ¥wo&:¸‹Û×Ê;RfUÉÕÊÀÖ«4êÖN6°x Dß´IÕ…>Qa0 )ˆ8îÖ»µ–©jËÙWz«lz³{y*‹Lø›¥¶Ê+ Ö'ó6y€ A”ÇLÇû6‹ÆfÅŽ), (rªÇ ˜ÌH67Ðü:°üvX(Zi¢ÌÌo.wÍm-ÝöyÌkµýa~§{E¸›wì[±m'¢´lZjýVë»a§CLéMY›¯u–ñûs§q˜ Æ†sO&í*¹|®¡ ;£VgƒŒ~A´)_K²nÅ{#Ñ»U qZãr´Ž“ÕÏ©j£8÷j¼ ,ýM¸«oÑa{Nã2Õ¬Ò^zµ)Ç&ô‹¢õË4”am‡S÷Ú5¿sAÉŒÝÖ¬E×ÔzfÅL-KYvÖm`‚¯Ò¢)III””s=X&ÙÇî‡ÎK†£†­FAå” ¬&W\Œ‹ÆeP\{˜kâ‡w)"Àðé ¬Ã4Õ Çˆí!‰ ØÜŽ\‡M›¿F­È¡Þ(q=òÆé"­j*ÈðÚ$hRV•E½¼ÖS¥¬I=Ù…ÏjªÿN N±€©mliâ±¶1•&VJl–3Àñv¥Â⟡b•É„09$ïÞ÷aºC?§³{™´ú[„Öµ©?3•ј ®ÄéÍvñ"‡6qé†VVP ¢Ä²™üȱ¹—Ç «!–„ÂÂÜ1‹Xò.®^#È& s> ?)‚gÙáóÇ]I«3ô«ÐiZ¾¿Û¥m”øº Qûò)˜6´dœ¹ô%0D18´¸¼øY.&eX™mv*ÍÝ,ä››¹æšlÐï_f[»¾85V]‚Q4qð*a#¨‰ä@x‰"€I½»­`-a¦Ñ‰gViÊ–Vã²4îVskÚ¨U-ÁU²“%¾´Á J$©‚ˆ˜‘ùˆŸŽŽžV¥í_f³:?˜-A¶k+’+ÆõçÚˆ·ñÞ#ÿ] ÷kYÌœzåÿ¯ÕµH¥ôqd–DZªü©#ªúΊÖ;À~&èÓW`õ–ÉØÆê\^WOdQjÛO›ÇZÅ_¦–µq>ú¶˜R夈ó‚_”s× kˆÊš¹†DsÄÇÄqó1ÏtsñüŒsóÏM'º^ãô–¬Ï>¾òìîa%ËBrQ8ˆ¸&˜™–csf±9’­o™˜ að@©G‘Åžc*í.VÓ…µ}öi¢ÛŒR¢`,—L±â_cUþd~dx§»Ûê1º>,ôf9r+‘;S‚ÙI\ç^éÑ­¨"Ä6â{Õº5û£]Q‡Vwg†B©À¤Ž—î¹Zì:hyòµý5ÚNµÅèNãöŸRݰTé#UÔ§uÖ€Ššªä´Ë1ñ$…‰3âbDCÎfNz­ãÔº]6T¡±6Ÿ’:¹ dª^ÌÃU8Þ ”úëC3öøñ<s Aš¸$$/•ÊØ¶C>¦{ÐbýnŽ%f lLLÂäåòà»xïì¥éiÍÇ»5µ^+ãñ™ûM52øÅ. °È™Šö&R>À2fdz£¼âIV Ê8Õ™Q,¡‰€3 ó¸øh<|E®Ñð ÞÝâ­j(ñ•¬Ã¸…B=`„E,m˜ØG¨kó¿1mv~Ù­}§ªšNj†\°%*ŵð÷µ“eÐg܉•ÌyOæ#¯-înáàkaòw-Ý{»È­E‚g^fH&TÁ"ÊÚk7p óð)ƒ1‰_:ü,eSpâš«)E…,e6¬Þ]†¸ ÄúÌ(•±cë‘"YŒ”Gâg¯î_t™Lƒl•6µ6[fäÂýŒ9dð+zÊ~Å”O´fcýê'玂b¥Äë%eš ±Ë”–ÌÚj·µú×Ìé³G½ý²nvíaÒ=>-MYVJGŠ×’4 "îl4<úlÂ]¾y¹ªýÖ=Mbø°2V#ÀäxyDÄK¾?Ë1ñ'å1ñÑÒ8~¸ÏØ{¬g'æö±ÇÄ·&™qñøä§ŽŽˆÆÖC¨úëÏÃeNÞêGa@Ögfi~s-ýÅ¿_{T(žÚäL©T#@¤Ê²d“%AüÊŠBesñþ:Fx؉ÇÔæ"y3çãóò_žŽŽ°»5ù¯íÉçÕ=*¿}é?•Iù¶Þ4F1ˆˆüë­h3D‰Ì0&$Jbb|Kæ8˜èèèì{’ý£æ»-üµ‚ýâo˶B›—ÀfÕ™(˜‰{f"|N9ˆ“â>&cãø™ëq.̰ˆælG2s%3ð_™)žŽŽ«Ãìêó]¶kýéþö|ÆÙ0­|GøÃññúÿçGGG^‡OÃü{/%ú—Ê=¿ÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/us.jpg0000644000175000017500000000762112233761321023663 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ  ÿÄ/  X!—Ö1“¨ÕÿÄ ÿÄ5 !"45AQqsu² $23a±³µÁÿÚ ?ãßÒ×’d5¯+÷Á ®w ¹UíëZÔµÊUÎ jZ“d/‘¶I T †¸§ªwö­qot£53!íÎÁìHœ t<­"Þb4^Á´‹Z[ügÔ ޾£ëËþ&=ë [tClJG!Ú³GÄÍÇË×5ɵIÝ9#%"º`ç6Ö¡j¹c ¬\5¬f¸ØrzïYAh*®ñSmú&¥³ÍKò‚öõÞ¿2Þ½²ÞÚ.='F€4ëò5[ œhCS+沤BŒ² ¬ëViûÄÝ~t ä´îº³ÊÓ´tm?QUõf);š¬ m9O±X­¢³(¡áÉf”ƒ²›l"TUÅ”ÐéÖnû£lVìœ6ü‹I ÷ˆJúâšìÚÂ8§çnƈU’}š…l‰=“¢pĤ÷L64qóFÓ\(€ˆPÍ´û œÃ9pbðË­šƒ¾4ó8muÁà±i…|% ”UÔ’é™d•ÞÜ2éÕ³îÁi4攒Ș¥˜”Es¶;²yí¾0ë]}ªp:í2×a¯Ž­²T7G W™à’KKƒ4ýéæ»4Ô«gª ¬¡z~TË21Ïâûªœ¨[ÞÜFY•ØPLû$ùm²ÂàÆ[Ÿ°›2“ürªß]M¶IªlŒÖfÊ‘…T«9ÖÊ× —q(IZ’© Ç[a¤ÿKN½Òlñ½E×F„DývižˆØ´,ÕíׯfR½ÖgZZóOŽvzM!nf¥IÛ¸$b(óDÊD]ÈåS$mI%RLB<ÎHB ‘‹EÒPê.Q¶HÀ ¹95°ÓºõYrüñjÕ¹¬FPªSF •™QbrtÅKç¦ ¤Ðì›/ YLŒ(ÑrAGHJÖ°µQºÈÕ£­½‰X±ìy"nƒÄï¨Æ,Òr¦1ÖjîI„ͬkpê…—Æ\°jvË7ö¤ ?[ú«ñ#¿Ý(Õ§û–U(Ê’4k=§]#PØä©)µ×ÀLhÓbfÙ® 8ðBZä¢à'dëP³NDû GŠ6 Ó!_†Ù‚ƒŽ3ºZRµ^ eúØDhÉ“aac”wʰ= Û½À€ 2D|‰wKL`×ýÒÕ‡ÝòS͹: xfÔ°-«*uÔÔvŠ·rx„‰/^7‚S½YÏ'­BÏ<sœû'rµU³ ¨¿…”MFQË´ÅIZ“rç .ÌÄ”KC_Ã!ÏÎד` b°øâBË8Å‘‘|¾¬ô·ãU­l­}ÎÊæûh‰u¢Ôk^AÕí”Ñ0ʤ³a¾ÙDlb’ÚÉg,Œ¼­„µ„¹•ïÂSއ6õ…ŠòÖ9K©/ ˆ¨mxØÉmƒy•ZdkÕ¶²2¡ãÃ:ÃÌ<éÂŒ™ñä$^ä™oõça¿j:lòæ­_72€"ªv{Ía‘ׄÌÄ´–×Dz)B¥÷0^Yˆ=¶…ÃÄ$¬aÅ Š#¼øú:‹qsY\~…—X+.*yc©š½lM5+Yd޼PÇ*ϱ7SÉlIe™ÞÃéw–ýÛ½£¶‹ §'󉋨œw?jö¡²‘k-KRíÜí¤2͘«FÎz[–aö;Õìr¶9†5Š­Ñ3ŸôÉðÇ÷ƒµ¿çÕ?ùUô~/Èq)Z;ƒëU¡iJдj,)+B±Œ¥IV7&p¤«ÆR¬g8Î3Œã>j_p8<›¤ô ë(çäúgþÿo¯×Í‹Á]€+ûK5)òÑ‘ ƒÒAÝDAë÷óï½öçÌd,ü¹¼æ°YfaeË^ò (ˆAàÈ!â61’cG7—ÊWÈnÙ8·Û‰uÅ:è¿fþäï­·€åUŒaL2±™Ý›ãýŸ79 ¼­Ê ñ—ÖöYÆ2¼²6ÎYkhžÌÝõÜw.9̯–âý|žÏ07ÚÕŸ)¤y(Šón+ɶдLú4¶Ò¯¶›íÁÞö’€ùõð]ØRýKò\Ÿ&ð•ã-ûnÒ0œz«)Wž3ëEg§ãÂU2E"íÞ²s,d³É3¼\ƒÏúøŒ±º9ØjÛ«gΕüåpbzõ×k+ãl©‹ÓŠóaêaaS84±ÏmâVˆ"Èñ¯ëŽÑ½Ê’…˜æ%NªѱÌNÉÁî=уcØ}xFVðnVkp’F,‡±…—aˆÃ^ã‹9†ýÇÖÀÃüû†H°µ›Ü’ϯ{8øÒsÛi÷\ñòwã1» L:Q8O›é¨…©¤¥Ü8í„íÁÞ18Âä¹àBr„)9A<¥äªÖ¼¾3ˆñHÔòZÎy³Ãq×C®‡ˆm.²VvÆW»>wΖˆ V'›ª6M†O *åç#É#ËN°^MS B_eHÊ=ô6öS„åMá>ÉË‚©]˜»Ö–€zÄq!.GLkVt!GOR𾣂[P+ˈã9XtÛöV9v«‘µ:C|=›yìnIl¸YEyÞààu1,cNIö/î!Df9è.e o™–"Ij6ÏÚU Ä+#²ŒGMüé_I#4ØÓƒÖ™·s&/,’0ÕŠ³Ú¹ÂM!œŒ§Ž"™w-»'¼6áS¼>Â0 :P†žu§ Sá´Žœ4Ÿ"^ZJnÃí%ÞÖ± ònáF"ÏZâ%þXr*d”x¥¹‘\5'ÝqÎ<—GøŽ¡e×r¥áª!ö½ïÄЄ9Ëô¸àG‚Èò«äæútf† )cÑ”Á*–#Ù`W!üÒöËId¸*ÓBÜè=gU‚`÷ËH]›ŽH’XæH*§“$`1$ô¨¢m×Íã2UY<ÙùhÏÙ†0‘å>AB*±Ã¬oOkŠ™{rÉT¥i¤‚•;’–HØb~ã3PpÓ?®‹ò~Ú&:OÄ;UÀÓóÃd¯AI7nÄš@Ø÷}|¸¸ÒkÅÂ#ÃuK³ªÑü¹»»~û¿ìÿ&ÿÁú:tbi€Ã]hxÔê;¼ž8õÀ8a6àêFfaçË"Ä„]–ÒÅPÈU/¢úTgfàz±>¾ÛÜÓæ9)ÂåŸ&F…áo¦êp¼c8°•Ú•Œ+R±…c¸Â³_Lç¯7ë—ºŽGÿ|6oùGGGQ´¾n¿yÿž=¾¥úQ¿ÑãF™|¿v,9YÉ&m©&[ ç³Û¶F2e‘š@È´%”4;,0Ó ¥KM2Ómá)mÄ€Ç4yŠ7—Æå%Çóñóö7¶ÒkÏÇ×ÇËÛµ'ËÇÉ^>¾¾žYôôõÏGGY›'áCþÚ7黚[ÿ[§¹§ÌrS„Ë>L>Œ+ ÂßMÔáxÆq…a+µ+V0¥c Æ=q…g¾™ÏPiüÆåÐÓòÒò£‘ìñ$ŒéÌï šÑŽŽÛÉCc¸J,éyl¡Ž”4¥å´¥†R”ã # ::ŸåÅø«ú_Âwç¿+o×OÄÓúÆåßÿß ›þQÑÑÑÒü7ãÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/barbarian.jpg0000644000175000017500000000746212233761321025160 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ ÿÄ, !"#&%1QRÿÄÿÄ= !1"AQaq45Cs±³µ%36BRVbctuv‘¡ðÿÚ ?yuþFéù`sø~•üvzÚ ö´Õ­ƒyÖ4×T¬jéä‰ ÆŠY•ýp­uƒ#EŒP¤˜0Ýò_Jß—aÇñÈiq¬t"«³=}u<Øó.'Ë v8œzÒ ¶Qä2ª8í ðŒW’¶Èd6Gs ؼvç^QâvtzQÞåfßÚÐ]æ 0è(Í^÷€±.dï®h‹(4—Ï ¼RE8_°D§Gœ~1÷_ûf–ê`Wj·ÔÖßr-tY´F®éuÕw_ÄÕ@¸‹_,P+¤‡Cc Ü[QÔˆ{'p C_ …¥›¶jØX$všzªÑ;M^÷õ`Eì® ˜1 ­©ÆlºWÐΩx¯#…&j¤\ß¼8N1Lg€C‰6lÉ/‘VZçõêrC,f³¾JekÐ:¤j-Jg??bÍ]im³÷Pki¯:áyÔst,†/ŽIëQÕûZîQc¡­>Ìp.©ê­KikOCgÎ<°¶Ê^b¹†O¡‹­;«}náCÑä¬î³?;ÖEê\ïTÕ™Ÿé¹“¹*Ÿa]{ ÌÝ燑mæ«ç5áÒ†6JØêb­ !šQ1¤W¯Z(Z,x;!¼%(ä$L¥ÝíÖVõ QÃ-ɱòÙ´*–EŽ(ãU{S» ®Ç3$-°@¥¤]]"eÔ„ç •Ìse*|Q±Ø¨Ò ˆä# „ùªáö5}˜¯c•çR) ®¿Ç–v{Ø6<3¤[YÝê(`“CƒÕÝOýÇXå!6(,q:k Y›MbÚùY;Ù†)ËW"ÂŽ|¶~ž| Ò+$G{!Š$*¢1Åù(‘ì2´(ôQ êƒ{Ñß%_w"|}½û1/Jç+û†:LjÓefMs‰4—*°.ÖVxÅrÝdŸƧӡÚêÙµ³, ooÌà´Çæ¿îTÈEb(¦H˜Xvh®#vjÓw`ÊÇËR#AÝáÁÔ8Œ–VK”bÇ^¶+Ó±vÈ‚´îô)ÒX‹vV5ßQõS´Ú/µ@·­c°CbLF F-|w+Q­DF«ˆ¿b«}½½ßþkíîïò÷ôz‰ ïÊ@•ð eÊ/ÙbHQ_=•Újײk€7JlÙÒK²|6H‘Ÿa*Lç²äêB8ôÃðŒóÈTöÕv[ìNÍGh´í©»z<ÜbŽTÈvï›çhþïñ4ó¡ëâØ>8~@|ñÿ ¢Ôw_!°֦Ž=m†&£Mm2Â5Ãæ%5l E;ä´o±y­%Ì+b ©îŽXqjcùSó'ŒùÃÛ0ó9DmS&ä¯%cy¼»8p2yúú­%ôcÌ6ŠîêêÂÞ;8íj¥¬,(à':Êåæ#ëkh¢FÓG%©=£#Œ’RH&ýKöyL4ŠYRaÛngŤxHÆJÔD4tñàÓ˜jÏ­ïO‹X+×|z8ÛVkÊk­\´VbÜÐM^q  `¬ZŒ©2"ÌÇ»tàúõµÀ­þmÅÕ"ËÑÈà²Iž¦B¤•æ„[[-$§“’ŠXÐÈ#eMáq°Ç1£F±\6±ˆÇ+k\Äj#]î`´ßÛ}—ýÖ¡?ûDwºz=R""}Ö ìˆží!Ñ«íý{µF¹ÿ¤sZïoü¢/ºz=[>‰ýb{y>}=gþ …p´¤ÇNÛ@ùÏòxÊ–zâ‘Û+Ü’WHb‰Eý0+Ä%kUf‘òÆP£^ïg»Ã£>¡ªHiœßÙtUEh¾-ùÙVAÙƒb‘ÏGŒHæ¯ÅU©ñTîxž#ÕzDáWóîc£Ó¾DˆÐ˜hì,_¶Éã |w͘à0fžs3ÙQÕa‚z¯Éó)¿}îf~ ÷[ª—Ìtº¬ìónèé¬KOzŒ„epöTä¯ÑF²ö†ÛÉ4‚5›žÏ¢cgòœËƒÃE;ÜÈUF™&¨d‘HG "IC# ×MNœVEËy+V£ŽÎG&äêOZzÛÎÔ`cI"åÑÃ$ñ«A&á¶B8óøWê”ÖÐ<ŽðÚȾ/Bî\æÎ/iÃÝôŽc¤“1ÔÖ]wí²t Ü_ÔXæ0ÙŽ—ˆ©¦³©,m. i¡–â\ç-Y_+üeñ/Šd¬Ù€ê^2øµ¾µmEÏCçY~ñUäxÀlæÅ|‡æyN®¶`æG>|«‹{~O³‡inf×9Q¢½¸ñ×ñÈ‚Rõî¤é~0È™}«…QÒ§o:7V—'¤Ð×Ze$WZTÕÓT\ޤí‘8+p BÀ,0áò¼Ç’÷¦Õº´,Ú‹* ±×ŠEɘ’9-DJXŒ´Pô¢fŒÆì…LÒ†CÆ yz¤lE¦D5,¤v«Õ‰•4ãë$‘È&£Ò—k$s «5U<þ¦©]惦ûãµ|^ñð°¥Xɶ¾ª]Æò}¥µ\X€"JÆCªž+¾¶Ý’HQ«b¶¸QÉÒóÁœVK¤RºŽwÇ$Ѫ‘ñ˜GIzÞOÀ/s^¬eyŒŽC„e6)Ê7óÌš1<‰òÂÛI¦ñ»e›Úù‘o¹örž*ÜUê9– ÆÇÔ6‡I_ðÌMÇæfÖÏ]Eƒm P²ùbÿ+²4é,>+þ&jÙ Ë¿ØÈÛ]¨\ù8ŒYgSólã%ÿ!ßía¥~ƒ Í†¥m”×ÐHÌf9>üjÖ–ê\Î?“ªb!–Ó^»X–*Ô˜Ù´KvWTG–vl²*U6…í¦ÒÕÌãòã$J¤²DêA!eÝÕèÉ,±‚`G «3»Šœ¬;OuùUK{½×Ýìq~_íÍör§ÅËý·ÙU=•=•SÑêÿAü-x½"ŠîN÷F#¹ÿôè’þn PjïÛ=ÿß+ä­Uýƒºo°ŸæåôzóábÙ¬˜ðìg­¯èö>W¯¿´ú±ða|Ùù}_‹Aôiß©ßÁ}½½yóŽ0Å!°Óe‘­GÉ3žËëQØ1Hdû’@¬¤HBÿ¸‡9;^äO9‘þèSŽoµ^5Ÿ¿äÝ3E/Gÿ –-gK¡›¿û¬ÑÐ]Û¾Š™†ŸûeU+æK}Ms\ë*K¡„*r«­Ç ÂFV!åÈû‘‘ÂÔ7Íf±ÿj5ˆ„ù0ck¾~ÿ&_tkQG­lçWé›êÓõñ„¾ ì_ª>?ÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/female2.jpg0000644000175000017500000002114012233761321024537 0ustar mathieumathieuÿØÿàJFIFNNÿÛC   (!%"/#%)*,-,!140+4(+,+ÿÛC  ++++++++++++++++++++++++++++++++++++++++++++++++++ÿÀ¾–ÿÄ ÿÄN !1A"Q2aqB„³#67FRtu‘¡Ã3±´Á$%45ESVbcfr‚”¥²ÒãÿÄÿÄ5!1AQ"2aqÁð3B¡Ñb±áñr‘#ÿÚ ?Õ4€P @(2é¨l¶™ bëw·B}IÞ–äÉCj)Ɉ8È<ýÕãi(J\Ò;ã¾Ô˜í?Ô:é mÆÔ•¤Œ‚à‚=ëӵɟJ@( €P @( €P ™ëIejk³×ëì «i!èŽå=å%$%d@BBp$V¹Ã|Ñ2Œ•Ã"…u‹ö‰ÔL­Ö¥Z®ÑU½µ)8<œe¤áC<¥C>Ejæ™7q²>h鮹j{tµ*óؼEW–Ö„²´ð~ÊœHÎB¼q5’±÷4Ï z¼‹?Gu»OÞ·5zOäIEÔ¡¤¸²ënï¼$àùÝ€|ã5b}HÖbÎ>Ï2Ï6-Æ#r­òX•Ììy‡ЬÁäú+a¦ž™÷¡à €P @( wÕέXzi”ÜC“.ÒP¥Çäpµ“öT6îäùÂU´à Û/©ýnÕ±^›f‡vnÓ5ü‘gRšÛwb–Aä/ ç``n™õÿyRW¥ïîN–µ¸·çF[AjåJRÝw Éç•I÷&€ë¹t—©:bT)GM]‘$/¸Ã¶ìH[JA+,•H œxãÁ >Ú3­ÃO\J®IWûSä&eºèñ}Á!KÜQ£Èà7ŠõÍN5I:“qS7>Å‚úæÐ"¹-M2ñ*Ø”²P¤¥JûNÔ’Tp‚k›–E‰kg¡­ú äXŸ£å¿1Äí ‡-H W'*KŸ*xãå x'>`ëò$×—·©•Þ‰ÕW®›j)PV•­)nTam’œ…Ž0¬g à(ðsX&âÉWcÔÔ]>Ö–Ýmemç·!¼&LU++agØýRpp¯¸‚èÉ4V[S­é’zÈÖ( €P @( )êÎÔý¿¬÷ O-µ7rŒÄ¦B %) a\pw4£Æx#ðnMÂ-ÚÕåow½ c(}‡6”ïBÒ“‚pFhª@xÇFéíe155¦5Á¤›S€‡ÉI;œ)Úœí# `äP­]¹èÞõÛK 7]6Ó=×Ôâ’_‹Œ€ôó»rG+p;ˆ^…uêã¥%B²jÙ.LÓ BXiÂÎÀœ@Ü´ à¤ä€ß³µ@kkÆœÓZ R. \™Ê RÑ‚¥7ÉØê~m§9àà‚}xÒ}Lád¡ì³;j=~èö­bíd}n[\QK2—y,¼p>ìãrpA ÒÓƒÚ,!8ßu.î•õ¸¶,"5ê:A“ñÜFy)'ô¤œbvÆ[!ÝK­û‰Ýdh€P @( ªÞ¤-bz­šNÒŠmÉ­¥HP8 ‚r>Õç3UÍóIŸ?ݦ–ÿ¤¶Oý{_ý©Ä¼Ï}ü™ïצ±@Q^ôõhÖsæ^¬2¿#ßÊÜAFèÒ…r¤ŽP¥œ¬dpNÒ¢I¡è×Tný#ÔoèívÄ–ìͼPãN Î[–yÞŒgsjÎâAÞœ’BÀÙT;­µ*B£Í·Ëg ‚iæÔ?HRH?=sF_ꦕw¦:¶ÝuÓS–ÃT·bIr:“È$ð¤á` ç  |«D— Ú,é³ÓE©"öé^·k\iÓ-M¢=Â:ƒR˜JXÈZFr®qŸp¡“Œ±–Ñ ê½µØ™ÖF‘@( (/WúÒvžÑÐl6ôlü¿ÝCòCŠJ›i²ÙRÎýàœmÜ0wdôûÐHºŽÕSkvä‹{ÛþØAkâR¥AA'*Âp’p•d¤à­âFbVbÄe¶#2€ÛM4€”608€Vz—Ö·­ ÓØóôÛíÆ&àÜRúÚÒPµ’¬§'¶ ðO¾í|UÃ^ôÎ ‘U¢|èñÞ˜”µ•á+R ó${n`džA«·?›Š]ËL|N¦ßbŸ›Ñëó]õF•o„n-§z’·ð0S€Oã¿Þ¼Y}Q/…‘Û†ÕYK¯Ù¤)%[@`¥ågðA'yñ[VEo£<ágù£umïB^_zÚCnZ“JÅ‘‘…§ ‚“œäx$ñ–¹£U•FÅ©‹¥zÝ­q§Lµ6ˆ÷ê Ja*c!iÈJ¹Æ}†N2wÆ[EeÕz9k±3¬&}õ‰£ºh–5S!¶çYÖ–ÞQÀ.°âÂvçi*)Z’@$ç¹ ;ý$kOÝOÕb}LÛÖ”û®oK­8¥–À'‘´$£o€œpšuÖÏùc¦·MŒw¤BÛ-¯Ÿn͇çW.p@Î+ ­£~4¸lE нLîž×Ø%j‡tRb<Úr~e6¬d …ÉÎ¥`dÖ¨=2vM|PoÈ×5 ª€P úÖ¸Js^Ø­«w0£Û;í7´|«qÕ¥g8ÉÈiŽ8òr—éÖë¥ú^mµ ·ÛÚk´ÐXCJm=µ¡;ÉQ RTI9Ær|=½K¨mbÔåËP\c[á##¸úñ¸„•mHò¥“„¤qÀ4?׺î»uŽßgµ¸áÒðV Ë‰d¶´³„—' ¨¤î›UWÚªƒ‘¶šÝ“Q4ås¥è c[h»n¬eQ[ZI Ih Às„¨~rrsŽœ“[ªºUôèxÖÌ÷ EÓGj–$×çn|(¶²@$yIÚFR¡ÁÁÁIóƒVКiJ&™ÅI8³dhBÖªÒð/L0¸è”’KK ”)*)PÈò2“ƒÆF8*R{[)쇜H?ªâ/S~­þ²Õz`P>‹+§õ3¿¶f€ÙWl\mòaLo¹KJeÔdÈP ŒŽGø¡êm=£G.élÑ’„H~ÏqÄ6²âšsF@%>qú*7F\?^»£pT’˜P @( Çë+BÊ›µƒóµ‘zà\ýéiN9ùÜRUÉ<£F€ú@ê,[Dù:2ê¨Ñظ9|ÅI Ϫ=Ó]HºÃ¹^ž¹F›žÀrÉOqŠ€PZT8*VüÇ9ãy:G¥zw¦òd~C¤I’¾TÅ¥n„çì$¥)9àdŸ$àb§Ä$øÔ{h´ÁŠárï²OUÄá@(LzƒŒÊeY$¥°$8‡[Zò~d¤¤¤c8à­_Ûøbà \š0’ç²céjãݰ_-¬|<¤Hînû]ÄíÆ1Æ;^sÎï»›:ß"·2>²g·ê‡ø‹Ôß«¬µ[EWèsùkú—øô§ 2w¨[;V®£Èu,¡ „(å ñä’‚¢xåGñ:,Ze¦,¸«ø{K\»i‹EÆJP—æCi÷Ø!!J@Q$œdýkr{El× š^g§^˜Š@( ýæÝ§¬Òî·©m÷ÅF÷žpð‘ãñ$’$’šùßÕ‰Ú^ã¯.r´4'!Ù¿‘*á Wç-´`ÐO!8ÿªB@îÓýSê`B·ê ŒvK-Ø–ú[l'-öÒèVÄ”¨·¾@âiô=i®¦ð½¥ôÅ€™n6ì‚q¦Ê¥a9)I*)øœ}Oš­ñ/Ëóúù¾_SȪ²ÄP @VÝ{þÃþžÙ¹Rðý·ð1—C÷éSùQú·øµoWr·7ò–WtÒõMu ‘”¸¹2#GCkJ ÞA6œ«€ ÐsŽ äy­¤œôq§/z÷_ùzÍr¶wþµñ±VÏsìíÜq‘œ}E¤¨ ½êiöê T4ê¶m͡ĥ@”+{ŠÁú)'B>µ¢Î¥–õ>f‚éïðMVFý’ktz" ¾Ûøžýzk€P7ÖÝû}×Miöœ’žË.NyÃKÞ­œg•'¶ï‘À_“@tújÐí¶&µUÎ.n³7eÀrÂHRù;¹Ê pFåf£:÷)z4ù"Ó”£Æú² êŇ“¯-rÓ‡-©B);T¤ºáPÁ )$mÃëR<=¯F׼ќŸ~ã_Ï›ïe¶]mî‡`Êi/2æÒèZB’p@##ëƒXxŒ_ dg%ÄÑåUQd( +n½ÿáÿOGìÜ©x~ÛøË¡ûô©ü¨ý[üZ·«¹[›ùKú¶E 1ŸWn?•:•¨dv»[%ûwnÏhóàyÙœ{gù¨ó{e½Õi×GC~ݤlp¦7Û• ºŒƒµim ŒŽ ø­ë¡WcNM¯3ׯL Cõ·hìê5yïîø¸NEììû¥îÝ»<翌c¾ùà ‹¦ßÅÞ–þª‹û$×;âKâËê?RÞ¯’­ƒSü7ó|¾¤/ü¿?¡|t²âÍï¢:J\D¸†Ø„Ôu@©YQ'‚¤>ìxû.ù=éí%׌™ ‰ K$çròJwNI†2qŽ1®QŠæÉ0ȳJE‹o›ã ™pžKÑÝNä->ÿaöǵe ÆqR‹Úf›+•rpšÓGEd`( (ÏWzEËÿNZ»ÂÞ›cx¼¢7•ëw 6¢O„¡G#@„úaÖ1%éoÜÌ·˜b|Uð­©A*ÚÊœ;AVT¤ùÀ'oßUôµ>5Ñ–˜V§Õ>«ÿ‹»wõ«²v¼ðÿÄØ÷;ð×İý8´^ôù`Bs»l’03œItãûªÇ&uI"<Ô,M ¿OoÚë¨s׫lékrÔ«[PÜJ;¡E*¸+ÆÔay î?!ÅVÇ"V½´úýýûË Q;l~“Ù] ǧ: ùx½jäh­M.Õiƒ!lG–ÓË œ¤©] VÞFÞJ†q¼“º¥Ý|#úHí¿Ð‹M2”¥Á-%úž¥³]äôûLë-A~Ÿx*[Œ*òÜgæP=µ«xùƒ''o öÙ ÅY*ã=NuÆÉ=­›Ác¶iër Y ± "pv2Œn8r•+eG$ã“T³œ¦÷'²ÞŒ¢ˆ?^ÿðÿ§£önTŒ?müºJ¯º¨ú•…:²Âil¨íJ” x„§'îJ·«¹[šº2ú­¤@(+äG'ÙnÙ)K²#¸Ò ©$ ýÜÖ»`ç\¢»£mUÛ¾‰¦Sš;SÊÑ3åZï]ømåN4”ŽãkÀäs…÷Æ0AúÑãdËN»#¤ÌÆlµ>zù5÷û?uÑo›ã ™pžKÑÝNä->ÿaöǵ_BqœT¢ö™ÌÙ\«“„Öš:+#@(”úÉé¾ã"ó:õ  Q¤/y³Þ Dí¶¥„V¬€‘ÂAàP^²Ò½T¼@—7UÚ¯/ÄÓ­vœvJJ iÿžû9S‰ÝÀJÆ k…P†øV¶g;%=q=èÑŒä¾ÿJf¶óÎ8Ü{³­²•¬Ú{m+jG°Ü¥uï[ Ka©.¶’JP²‘Ÿ¸×7dTfâ»3 ®NQM÷G¤ô½ŸI[œ§áü$G/)Õ¯+ r¢O„ì¯l¶V=ÉžW\kZŠOKÙô•¹È~ÂDqÒò‘ÝZò²'*$øHþÊYl¬{“×Ö¢jµ™•ç]#<þŠmÆ‘¹å¡ÇN@Ú’œýü©#­JÄiYò1—C‡ÒÍÁ¦î÷ûr’¾ü†}*m mE*œç.§{ÓoS+óW$Í[Šñ@(×:i½Mh ¥©l«{©9㔓çi÷ÇÐqŠ‹—Œ¯†»®„Ü·gTú”æÔs4µå!ó'àÒµ&LLãŸí>CÆ23TxÙÇŸ=ëº:LÌHeWË[×'÷Ûý—Å–çñk>Qaôå;“‚8 ¨ Šèª¶6ÁN=ÉÝL©›®]QÛ[ B€P –ío‹vµL¶ÜïB˜ÊØ}½Å;д”¨dFA<ƒš!ú>¾9aê5ãKÜ›øWnL”öžiaÑ!‚£Û?ÍÂñ;‡”x j@ÑDò¾J\H#§þïïª\ø8Û¿2ß iׯ#̨D±@( A Ë†å …!.ÉŒã(+8H*I8ö沃á’oÌ2„éôé>£B]Ák‹Õ*À´¥;¸·chJ <{ -쇑85ÜØU ©€P %¯4|Ký½çã²–î¨I[n ] p…2øü2 ,¼HÝÒõ‹ ùÑ5?Wû{×ß2§Ñz…ý'|qO²éa_½I`å*>p9'>~¤qœÕ6.CdzšåÝn,rêÒ|ú§÷Ùš —y¤:ÊÒãKHR“ |}Åt©¦¶Ž=¦žŸSõ^ž @( gÔ÷QÒoSÑõL6¸2V›Š™AS‹í¼܃…ó•w”‘£)öà¯oqÃÐV 2¶þaø{ÿwú*&m|u7ݱ,à±.Ì‹Up( )~¶é6cl¿Û˜ØslÔ n?eÌ“Ny%úÌÓK¹h;mù„¸·,òJ]iK/a%DIÞ–€ÇóŽG¸Úô©­ÿu=9EªRór°ìо>ÓʸH„”c$þ÷“ö¨ ÍÆ91Æñ„ç)ü=«žÈ¯ÑØâ^Ñg¤‚‘Zë½|íŠèmÖØì:ûiJqíÄ' »F9ÁIÎ}ñŠ›‰€­‡ß#­ðáøåÓéî“IïIkÿwÏÞµ¢,ïTo«H bÞÙÜRÒ²prG*<§ŒjbðÊWw÷ò.cü-†Ÿ7'ó_±4Ò½C{˜ˆrXTN+ nXRãvyãÞrqP2<>uG‰=¢ƒÄ‡nÅ­Û qÅu妾\ù|þZæKnP"Üà= {(~+ÉÚ¶ÕàöpG óP#'´s¦w×Ú:ç îПJ”ô »ó¤%@ŒœAÈÉàðqwð©>èÆmÇȲú_Ö¶·µlÖ®¾\kåjâ\Ü€ópàsÎ0TwFÏ2%Ø­½À¼í8w‹d{…²B$Ãíº¤r<‚<ÖÔöB”\^™×CÁ@(”¸íKˆôi ÞÃÈ-¸œ‘”‘‚2>êÆQRN/£2„Ü$¥©™¾ëVšÔް‰0ž mÌq…!Xär0qÏÐ×-d%E­wOý­VC&•.Ò_ìѶémϷƘÈRZÒ]@PäF~þk©„Ô⤻£‹²¹¸>©è謌 8/ökv¡³Kµ^¢72ß)eÁ‡ŸÄ@ Œ@ ‚( Û÷Aú¾¥8ÃŽªÖ‡ iŠ$|¤Œ(¡ö‚V‘JH 6ÕŽõj×Zb-ÖÅ)—šu(^‰R˜QJT[si;V†Sž*>M–]I÷z)mô+={ÓïËWfÂ}1çêÉC„`‘¤ì89&6k¡z9®I÷ƒÿÅ©UdwÍu[çóçð׿¡ ¡/°®Í¹.ÆÕÊ#Nam|Z[KÉñ‚‚‡Ôà ò*Ãù… {Zù3¡»Ç°í¥ªîp“\Ÿ m?†š~ÿÑ÷,9öy:‘¸1fZ-ö .Û¡©*qç¹H*RR~œãôm‹wˆÆ)ªù¿3–§2¼;+¶VÚ× œ·¥¼“m·¿>_®æ°#™RÐÎÒr¢=‡½VQS¶j'=uЏ9™ð¢Üb9á‰Q\Æö_l- ÁÈÈ<@?¢º6žÑœuÇCo1nHÒ݉Ðt”EÞq„’¢•« JFÑ»vI>=ëL«}‹ òâÖ¤Vïþ“¸Ê–Y®5ÿiÅ6Oè%9Oá‘÷VÑ'Õšó6.“y™£ír53‹ºÚËè(>NÒR<(§i#ŒF";×2¦Õ6£Ð÷ëÓX U× üYrC_Îa×7æ@ÆñòãíTÞ+_³={¿o©à–ûU·ïýþ„·¦sU7E[”ãÉuÖ’¦UŒe*!) x;vÿq÷©¸â¢;}>ÿ±_âuðdËKIóÿßòJ*aP @Bú­Ó«GQôâ­·Töeµ•Ü„åÈË>ãùÉ8“œ‚@÷N_5g§Þ¡N‰6 n©Ä%#¸âû2ÙÞ ]iC8 Yn傜äPµ‡ÔN‡ÔVÅ9¨¾+O\ZaM.J’®¶Ó“ÀîJpUÆpMFÉÇ«}Ñ#ùTýÇã¯z"gá_Ÿsßß §·Œc=Ò9öσœqšØàÚúò,%›RéÌ­u¨ë̸Á«š%µjBÒ·^tÈP$|ªG ŽOÌq̸x|SõžÈ³Ï“^ªÑ1ôÅÕËõû]=`ÕW&¥762—˜©BûÈùŠAm `£¸Nïæ N Êé…kPZ"Ùlì{“5El5Š@( uÖÙ &Á2•‡Ü•ÜJpyJR N'ûj¯Åd½}—^ í”»%õÿ×¢ŸÁY_ÓUÿÁ—…~ ÿ·Ñø×ã¯úýY`U‘N( }õ©…tÞÍ)L¶d·vCht oJTÓ¥IÈ¡$}£è( ס½Ó½Jéìˤ©·hf$»-·[[%A RWÛ( ÀîS¿§‘œ:É£þöí¿þµYüËú_ðXÿ/þ¯Óü– «¢š*Ýj“6÷$>üwTÙ+:¯ÎH#bVž0 F>ó˜²Ì¶O{$G¤µ£/[æ_:]ÔA!€Ûw›<…'6TÛƒ'…J… àÕÜ&§%ܨœ$âÏè&Ôñu–Ž´ê)ØÔæBÔÞIí,•£$ íXRs€285‘‰ïÐ @(Ës¸ÃµÄT›„–£°?9jÆN Àçð9¬,²5®)=#eUNÙpÁm™óP]¦êíD‡KI<¤±”A?*rq““äý}‡™ºÙäÛ¿>Hì1è†%:ß%ͲõÒ—,zr¹çR묥[Ô‘•(¨÷ ã>øö®‹§UJ±ÊeÞ¯ºV%¤Ïb·‘… € ½i¶¿ë–¿bõÕèî˜#~L¶ÃlM¹=!…•½°†Û*àñó6±Î ú÷e߇xg¤^’å˲ó÷ýÿnµÕŽÍvÕ×GC+SÏîzL•’1¹\œœ`|}Å]TÛ“>\ý칿"œH-ò]’.Ý'¥-Úmð¨îLR]’¿´¾sÀüÑŸaôÎ3]>,(^¯_3—Ëͳ%úÝ7É ’C€P @(P IJ€)#zñ¤Ö™êm=£‘Ûl7 ˜H8ÇË”ÿ¢´K™=¸›£“lV”¤hŒFÏe°’|Ÿ'ûk:鮿eYtìö™÷­¦±@(ò—!¨‘“![eÇ‚p2NÝXÊJ)ÉôFPƒœ”cÕ³2]¦~PºÍ›³·ñ/-Ý™ÎÝÊ'÷ó\“ã›—›;š«ôuÆI#Di++v X .¥;žZ=ÃöŽp2=†yÀÓãR©­@ãròö¹öíðûýOb·‘… €P @( €P @sÜb7>ß&ÅIjCJie'8ûù¬g8¸¾èιºæ¦º§²n饞Â4ÆdÜìwRêœF IgåñÅA‡†Õ )&ù?¾Å•ž/upii­wýÉÅXB€P @( €P @( €P @(ÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/stan.jpg0000644000175000017500000000650612233761321024202 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ ÿÄ1! "1 #Aa$Qq¡±ÿÄÿÄ= !1A"#Q4Raqs²³´$5678BCrvƒ¡ð±ÿÚ ?’/úl:à†¶xÑñÙ‰z—;™Àêû.͵çíÉ kk/¶íy1‚Èç2—:"öC/šÿ¨•ÖH¡„IöƒŸCíÆS$ÒsøR"Òø«Tö™î#Üܯ ä´M¿”¸k[ÈæøûÛ>3–Ñh ãœr«Z\6»­]§½ä3µçÉÝýœ…·ÉŒµ”ÎÔÃa,$jpKwl"M¯Ï©^½(ñ$QzO00I`Ç'<ш`ú’pUO$±qå;¹¨ßeb¯gXÞä¹b~ ‡S©—ÛÕzòãCõŸ£EÌe£VÏ?ORÃFãËÃ×aV ÝŠjܯb¼ð©B¢hšHÉ?,–;}ùíf:‡0àó ŒáÛ%¦dp14ŠªÇÆxsÙX±ð{Ì@ec&ż‹B¤úü–§ŽH¥¡-7®õcF°%¨«˜ãâC¤¤I8‚) •^—x>æñžÉx2×0ÉÁüýÏÔ1{6«¯¦ظÖPå+ãcËÁŠþcWV³±jõŽ…‹Ï“ÊØË@”¬MNK’äëÖ”l\ ÑT°²½…ÒQâäžv,H1óH;€ ŸÝëÓ$¤·À.ÍN%‹så†û¹FXõýäypàü,z±>΄uò¾›¯ÒÝî»ó`hhÛŒUÕ¥EÇíÐâï;«°UZÙZð„*U$i–ÔB0Yã·]£cAwÿ¦½N>Ég¹;Œ¸ZÊgdª¿Õ:% Ÿrº§![+C:&¥´årZ®à°<óWÙéàrvQÙéäªI$‘ÞÇ]Ëdzë8 †<^o ™ü'3cÆË…Ù1 ”£^òcsØ{-÷±ÌxœUÉã§o½¿ õœýÈIõËù;T¸”íìšÅLhÙ"£b[ò^£Ž¿jw§[r¹\dV­âêE1X² Øì•ªÔl[¿;éFL}ÌÕx5GI«5½íé!6ôëM°ZŒ€T€¼ÐŒL¼Ì0Ñ®v¦{œxt¶Z*·÷›EK!ã‘"ÔªßÓì P—¨êtëa Fy„É ŽHçŠU%*ñ~ßýÌ䱘ìŸk^ã±–/Ñ©v|l¼?´<¸ù­WŽyhÈð-ØJ#@í Ëq3FLvgB%sÕ¥ôoqœ ¾é:~ó‹ßpxœfç«kûf;³Û‡ ²ã(lXš™Š˜ý‡~Ü÷±YÊUîG[-¹4ÖèߎÅ[É4Näôž;Ÿ1üžA×·ƒXÕzwÉì?â6Ý>ã=Ä$‘½º°ä¥iXààzƒÛ·sôž¹’pÄèö?ÈýÇüßýÿ÷þ}|8RïýÉ<˜ [ £¯ñãòCÏêò I)âI'Ša·ü…«^íT¼‘H¥YÖ¼¾ U\~,ªJø&G]ËÜrdd§Š«¸!¦–É+ØèãÄ­ÐýÁuý¾Iê˜÷ó@5Öq$ž/!y*ú^"ôU$rs€À“œŸRnί­‰|2Ü«1å+,nl<Ôžã·m‹|ÍAVzìØ³bZ´© ¡«ÀÍ)!e/›H‰öÛÀôªý~FáRHrPU½VÈ¥ *É DÂd_Úœ˜ÜûiŠ•!ÜFW ʳY–Í«Zžc,òvÍ,‡³#ßÊñ‰OlzO.C£û{³[×X¤jlP‘‡Ü¦ò|¯CâH¦(̬‰1ô@,§ö«iüDFÕìÉu]4ë ±W ÙjЬ=dŠK°>—|àc±ÉË›¦ë§Veî¡2Jy0$æ è{ÁÇP:õ u böªB…@( @øè¿í×ì>õ¬n2ªëÙ8æWx¬U𤑢+ýßÈ_´¨åå…cGwXÞO½¬-÷Úµtäü1UîžT±Rc­]‘HBH,–‚±H ^Õ{õ¤ì»m„,QÕ’hW_Å–o·-¥•D-·Hå"…ædƒ§I¤ûjíkcÕ·ÛAŽŒâµ¶»$ÑrâçWN|œÊLåŽ{dvØ5-ÞÔ嵞¼•£Y<ŒPŒ'¤;1îF˜=NÔÓo§Ç¿qfæ®7Åìº/ó<£¡i9ȶœVkNÒùÿVjÚ®c´ÀÆå5ì^Ž#!@)Û§5qñ£ÕÁÙÚF20ñg%Ù|‹ôÌ{#̪èž¼Š)oܪ÷Ð=%N§9÷¬ýOËÕöÿ÷óìÈ×Çåü ON_>~½»ùà{Nؾr)*iûƒúA'ÿ¿äÿJ_»_}þÕ}‰jzîïî³–±¼Y¯n›Ôõ7·‚ܶl†s>´¤ÈKW‰Ðµm³0°U©M”¿shQ«“gïZ‚¼ŒF™»k‡­a·'=‡Ùu‚šßÅåqWcžäHäN¢c¸åHæòà·Z¥š3:Õ·^)Ï€ŽªÒ狾¦œE‰Ö¶ƒ= r÷ÓÞ2¼Èø›¬Øsmܱ˜¹\vï¯I‡È¦Ó l×´ý1vœm'ÆìV×¢—RÍ®VÍü¨t¯ƒ¬Ú¬/X>ñ’@²ÏU …r30ø÷$0#¦2z{b×KÇÓ%¯iäPдS¬ªãæT ÄvÉ <»ägƒOüG_IX-½EçݲËÄÓû<ͽ2Á3Ö”#OÇ”Ô:L¤~¢U”¡:¾Ó~¦ÞÇ}òäóï¶¾{×w=ÇR ùm/‰Ûtʾ:VNJŽ¹ÈºÞ¥Ïâê%fŸ1–ÖaÃà–zÿÎr˜÷³ hë-íŸøN22G°^÷‰î^•+ÒMv¾Ÿ®ûV£’ÙñÆ9e©j®Å³oœ³¦ë »Q¶@®Ðä_Çü ðï¶Ì•`éÿNŸáÒ÷#í êžáy+›xWqàžÎm;Fµ&?"ÇÉ»Îrþ“±ëÚI}C)¡.«ª>'#›w©1[öÐN+k³•±jô‹Õýp k>òÖl¥ÈkÏ-s$Q“nHB‘|ª8'-Œ’¤cÍ~½íäŠh^jÀ#’®¬®p@êUy»`ô=ˆíµÂ"u’‰vh™#u>N>:ù íÒü>ë±ë$QØèyòz=õÿžÈýÿ翟X¢Uò@|Zi|\IG™¬cQØ2ÚÞVx'‘RhfÈa­Ò·$S""KÌÉ"¢«© ·—Ë-þ.Ãܽ$—mÍŠ óZ¶íf̯,s4¯$ó•ÚF$»3ä’ÄŸG£Ð®þŽIõ±}ÙÙg¿¯Þ }]oÇͶ÷B8å$R’v®ªàü§îëÌÚI†Ä) ûKâ­ãö×É~TôÔüƒ×`üG£Ór/RþwÿÔÚy>=7ÓâèmßVNBß´.+âÛ6ñ·é–3»cãssê{.k]›1޵­ì_“C+.í7ÈR±â¿~­¶š ¼WîFÝ¡/ZõuË \·rÐ7-ZÅ›F[!e6g—ÎYÌŠJÈefó_†ìz=¹óß›àÿ'Û}‚û™?k ?¥7ƒîf¯ùv=JѦ|+Bàt€=G®/ÛBÇÆ&úé>ÚíÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/batman.gif0000644000175000017500000000211412233761321024453 0ustar mathieumathieuGIF89a ÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ, þ± HP`€ƒT¨ð B†BŒèp¢Á : `ñ •ŒØ@@²$‚‚?v `²eÉ)3²téRÀF•GÚÜ@€“;=N”çÁŸ$‹âlhÔ(R¥9›6ýÉs)J©S«BÄÊ5&ÃVtmzòk€@ŒåY6¡Ã@×I]A—mÛ«¬ Ýˆ-«´v¿æ±¢–ïµÃ×X‘½K0À³gVŒÂ+•$ň!¯ÝhY É™Ÿy´Bzc•*=›tºuæÓ¨9·mÉÚukØvˮΓ9oß·Oç>¹ºuļ_W!a”&‚Úÿ~ Û@s—m÷¦.ü:íä¡*‡>-ÖûóÏàµs/ìý IémŸfŽõ³ûçªhn+û™øå7^yk;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/alien.jpg0000644000175000017500000001007412233761320024317 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ   ÿÄ) ! 2U”ÓÿÄ ÿÄ1 !#$7sµ124AQrt±³ÿÚ ?Hmá]!ï/“&¯%Ç/ jÀ u×Y7Ÿ‘`¡Ã•‘ ¹Ø¸|ˆœSG„*²¨Fê¼QånWRtønAçW—Šß+ƒ¤äª€ µl1nW…e’ª’Lkè¶4Fc;©$˜à¼Tÿkå>CqÎøO<Ü5¶ö˜jzS/[Õ‡3db±Jä:çoWE‚…N¤ÜÛkˆ)}‘Q„+1 ºÅàvwߑΓÅ^(¿jB³¡£áá§ìTÒ*lûq"±Í¤k뉕TM1\D(®C AÏÊÆ×swÄêçÌä<qÄŽË„ 4¤c®:ú´æyY¼ö’Ö.Z,JÞ B‘‚1ˆWá\»ðž:5ÛK‹5-—ýX:¢"§ZXªYrz’If’!GcYjTâ xeú\¢3\§c²¡PZ+ˆËé‰Eœ•Rô·á˜ãZyNF‹q ”Ƭ¨Kψ÷cá//†á©Æv/Ä0ÂMÞJn™ÆŒŒ›Çƒo2E QƒÞ3s†Àƒâ©ˆ,þ!™†z]/%úÿ/ì¾ð.8~×bÚuîå§s®ã©]3ê}­ÿº‹üv-šãW1¡•/!ñ…€$¤@Êâ±Úf#´gãÇlQÏ|ß;Q¶ŽÇ/v'Q¯-­˜­ÊE]qUA”öV‚β֮_‹2&÷“2.Öu‹åñŸ˜à½ciºðq¨©ZƒHçÚæ˜ž•ïØw­¥ë¹BjKÛžá.–Lé‡zÃ?a·´ñ7Þ}jˆ¸×ü“Y˜UŸ,ßKåR0,H3Kè?©žÜ7¹½9_È6./Éßa󻯙ÏhÁêˆü„Âàh#K5_9æ#Õ™ß>øâA÷u\DH';³ô]QÛ¯¼‚ÙZ’Ò~½í. °®!`¶œÐŠæ Éžf´¬IbM†Ð-ôDg]«CÑÿ#ž)þ96»g—u±î^R>Rͦðm:¥¦³Õu¶+VKP»£;ASh%G­ÉÕ v䚥îÔ[µn©¥j$nÊwÐAì* mïQøHø¯ÄâÀäÖ¶no)I³ÛU¤q|¡çk°q$JKR‚k@-Vµ *ƒEgÓ5¨sîx[‘Âõç„g³¼+=ÂÄ+÷;€¹6j»³qžun¹8º¬ÙnàÙ‡MŒB—ÚUp—›×ŸûNŸÕüŠÜ{ö£¡ï|´þöÉÏRêËpG@ê¹ÿhzõ}Y.‰µ€"u[ŽŠãt¡¦é©Én±¯Q¥ Ûó›ërv¢fÄ×gù7çÏ•?‘oá'‹[F›ª4Yâ/8ˆð=C‹ó×"í›}DªÔÐŽV̬¬Ú·CÖéÚèUc_Xœ–³‹L\6(Þ˜Þ/ø'Çôg#!ì|ûI±Z¥V³nJ9è›ÌAâKšPüF Á%¯Í|IQ tÅeMðr}ßtO|yÚXmœç‘òÞn˜#Y°q¸&çÊÕ^‡N××L&F’rP+lµ„eJ¬:,_; "7Q7ÐåWˆ«»«•‹§©¦có)Ñ>RL´¥_Wñ5Jp™”ˆåYhK¥ƒ1s¯oZ^äo≜ì Mkôÿ?sP{º|c <\Êáäè‘]ÛXüp+uvÚɅ̽~ …hHeeŒ5‚ÎÙ[Šo!s•£_ŒÝ:è¾Ï|.Ø›\c?Z'^é[µéRe8F£`+gQDÁ «ÇzèT ]ÍÊoÎõõk¡ýØHñ p%œò ,,ýs\òÛ˜klÏ/]Õ»0D©!zs¤Cãx±€b]Ð1/“„óœ.VÜšª Ö‘ îàe‡~·¡ÁâüO”L0š©Æy$ØÞn3¨PØ.ç? ý³g{°,È­ë‡#DS¤kM’æ\9H«¡q:è#¤œ!±™h¤Ñ ÖÑeô¤ÚšYÓÞBPÜG¸¼“[”é (²o|«Ø5]‰/7nÇW7±ñæ\¿zµy+ØÆ@èé[‰#{UV0®äì®ü-p`ºÀÖäsŽœ@lïü#æõ?üà­þðÓ©ø­âJï Ó«m°Ù#^o¬kRÕ÷^ƒ¨­‘Ü›aéÁ—q{ÑmæÔ´œK€¶}ÈCöNæfÕ©/‘.4ý³Jn¯QÞu³ ƹZi$ª}Xï'e4šy1ù®lðŒa¡ïÏâ½äáþ0sÆVù:ZæÛJÍÇt#_ç\xAÊ¡“ €V©ØwÝÏb¬÷tkËÈ*ûi׭РЦAkÖ\Lnµ*.C‹§˜ÖNU¶Z­\Ø2l:¦æ{ykŽZ,£×–i›S(¯P0+%!Q»h6V9Ï_¤æÕÏ&³U®²Lg©œ³‡KOPD4(f ß'ìÌ{ H%YÕóÙ½ ¡ÛÄâíÖï’5ºJ. òYÃÂÕDÊÒÁ.јëð¤3g†_bökî‹wÔ¬ŒÜ 52¼ƒ z¿,~a¨ñœÀÓ³· öÍÊÍ_iò¾ñ™‘ÁÀޱÉÂ-G :àïXåÎÔ"“bÁ“iÒ .a6 ºEþM?#Ú‡è1¯ói®»›E³ZaC±—Óõš»b5àSA[kpl¬M¡VØŠÃ,¡²ò4^±üˆí=­nyu¹°á" Û˜àœª.ª ˜‘(g\§—-ö_¯ßfQPSA+ ê[ ª=I] Btã‰Úë©6¤r6An`…¦`XË&Te¯¨z×X…¢÷’2qIkrü-ô1ã»™ÕŽb³¶—xÚš%t4ôZ5 <‘ÏLŒy3Ö¨¢0v‹ï}_™Àý¸wK LÜÌ8Ó+vXu–YÀA³TÝ;b0ðQŒ)¢3ÅUGŽ#\#ŒcÇëÑê7NèfsÎEÜæRÎm›MCßfsœçäŸÙò}Óÿ”¾ÁÆßûÎ~RȳÝtÏCG† ãêw] l-²6d&wfÈÎQžnŽ¢q·3Æq,ÙŽ4˜Ï9÷`ƒ »ùºSÜÜêë¨lÁm”üf»¦¿Šr¯ÙH¤±úÕCÙœ{kà£à†?Q«á«ãÄ~8{OG¬ñž,/µÙe;÷„臭é{³5!vÈê©J¶Ûõû¦§H»c àÆ¡ƒLçPcq Tå]0„eœeæõ½‹`Ç¥ë⛞É:5]º _—ʼnïÓo·6ìì²ÙÞ¿kS„¸úóÞšµjùV<4€ÓÇDŸÎónóÌ×/ydÜνû\Ýx.¨¿ð›ö\ê­·w~ðïÅ3Öï˳²sÕ¸ñןdÂxYwaµ$`B¬4ÈŠA:¡ƒNDá…JØ 6ÈP‡²¢¡ˆ zÈ`‰ŽÈ!Š'¢øÐ„,¶ˆaF)®Ø¡D%ÚÈáŽ6šˆ`ˆöXaA;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/dilbert.gif0000644000175000017500000000200512233761321024635 0ustar mathieumathieuGIF89a ÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ, â± HP Ø"T˜aÁ‡<;8‘¢BdÈBÜØð™Ç 3jä¸Q"È#IB4yÒcF•Y¶| seË4kF¼é2¥Nƒ<Ÿåü™ðšL”D 5ú‘¢PŸ5,UhRâPR³6ø4iQ­%Z… Ób˱IžtzµlPœdI½Ù¶¬Ú™qÝò¬5(_½tóªœ ·¤`Â= çEì0"Õ’M©^3ºò ¤¸’'k>Xå‡.kž¬ðsDÏ×.ƒ†$Ú¨ÔÍd_›XúàèÍ+=7¦-û6éØ UÓní÷À€;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/kid.gif0000644000175000017500000000277712233761321023777 0ustar mathieumathieuGIF89a/0÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ,/0þ± H° A‚\ȰaÁ„%"B™XB¡Ã‹LÜÈ‘"Œ v¹ñcÈ¡DPž*%T–< 2eÅx”У3¥Jšuz„‚§"O¡6D:‘¥/!n,¡”aLŽNWø©¢ó*“U úäXE•›†=8–cÚ‘`× ì±®Ý»+å\!³.É·yåŽ-qà€×‰X°@àV¯Ï‹ _- 0‚Œg.MáT²h‘xç,¼~ÔCÊä „œã*´y …ih€>*Ú«@=ɪ´SˆUTIb™O¦yÒ Z*X–"¦Wfsq~ qO1í*‚bËî´ÖÐ[Ê´ïÁʾœ¯¼НEb9:ëyn zz#Ñ] $hõørÿ»ÇÏÊ¢yTõþéÿ޹,ˆ ö"˜ò cžØýUÌzÉdzøb¹žÉò¾|*øÿŽ«’;0ˆå޼rÇ gëÄYUxøUˆ'„pñ–æFyúpÜgI$·"Ceû8ç‘ÔuXà1l¨P9“Èsä\¿Ò[¶.ùöÖúýGk²êÒ€¹#ùL¢³™˜ëI{Xi4WÓ°îó»æÊþmƒyY¦ÁqÐÖŸÉ„R›Éã»tRKŸßqÅ÷P€·Å7?unGòðM鑳ڂ)nZ\¬>´ÝöæûÖ ´÷æ­Þû~+ãžD¢ÚÖJ±Ê`ú~H6 M¥ˆ¾hæ°ßãxï1³}uUÉû/ÏRˆx“OÈqYŸU_m%.bßÝ5ª“EV&÷LF¥e«$—`²U²udd4ŽD{ Ÿ× ÆV°ÿIèGšGÇ$¾®O¶;üÆCSÕ’/³¢|‘"z;Þˆ¨žzd]’òOÕc¹ë‰7´øH¬ùn£´ÑhÿƒÍ™ä|V~Ñ1€ÉSÛ“+íÉž¤Š’FiaÂG!£ÁF×§½“bƙֹI«J‘¶BÉ÷©Ã/®R##º€ÅT#Yn]-*îóépkVš Fiåáâá b½ oUÛ¹ŽzD<øHîÈw|‘UÜö?A>_ªƒ J~þXîwEâÖÁV•5ëh,Y6Éž´¿Ñ ‡ò²ê }U…¶ù:àìŽ ¢&Ç q÷ziÛïuZ·#E¨ßñFUöX}@W  [VòJz1±™W%m81ÝHe¶h'¯6š¥I:ƆÄwk’÷¦åzjßæ™,Ƹ¤ § öU­÷µ´xµÃ8÷!bOh)5æýºÀüÚO*þ40ÈLŒÝ»ÍRží.Õ¸k–øÛœ'×ßÑÏ]m5V;<™õÅPXÖÁŒÖÈæ³=œie]¢º‹Dتà©!VÙI˶µ¼÷õ‹ŸKqhÛ³¥´Vf˜ANbë$qJä4ïáL²qª–n¹,2ºwzž‡KO©¾:~·j´{×#UÆ 1ÓYÚ(L€ ZÊ9¾0W™eȼ‡õ¡>8ô|£Ìœ“È£æR<ÕÎC]_™­úh¬ôµcqH™Ú[Jz¯§åEÔf´#i.ˆ§ ˜ºïw›Gî·V[šù&8ƒkœ>Ò¼ZÕ¸ ½FpKƒj‘µsK)µÙTb)“E\·²HVwÇl.ã¹þ·%ÂÙûúùßu%Æ_/oMZÊ‹ûêéªç†½ bŒØ¨Ù 5§lXt£ÇSubD:2hÝu´ænGÏÜð_*î÷*§”yÓ’+á¨2¶Úµ[«ã» Øâ´³¦‚G\D ~~R’£miÎ"èu"'L¯BÛÁ©j+ydÜúº/ı¥NV¼ÙæŒ$¯$qCÕàÄÜ@Œ7 ¸ÉP/Nû±»ttxªxñíODÖ¢vu.LÌñˆÔd9‹–;2I<°`{fˆ£BŠˆˆ¨¢ÎŠŠ‰òŠŠß(¨¿¿žŽ´ÎrüþR/ŸŸ>ß¿ùÿWGGˆ·¥ÿÄú½^£û<’_'uË}Þcú¿_ÇÔvÃgc±6/É1ûz¹ÊâŒkSáU~QȈžU«Öh+n«Ç®ºZ«(§GYláÈ@'(eû’Æ1ŠÏÆžHг29\øš×=íj5zý–­lWÖ»ÊCù%Ã"«<µñʳÀDHåjµ‹#è~ê*}—½$G"µ2Ïl]¨õ’K:šùȈ8ð©HàÆl~¨š2V2 )?Tƒ1ß}^ÈÕÝ^*+W›ÌrÌ„ƒƒ‘èà c òÛ–ãh5=CÁòh¦c ù®ÀN0Àzüž[;®È{š¸¨akI­¯Ö%E9a›¤Ae—©´TØ=€,Ôr\¨Q)Ó£±¬¨a{Ü£²eIáÉÈó¾¢Ðù÷÷‡^\Y½–õÇe;6]çÚ½ƒH=žN¼º„Ä"•Èõ¹ñÿ†¶Ä‡†*ªk;†y#ò½·òµEPÇÈ\][ȘíH5D%m›níÊuÎ5óK0[Zgí"±¨>®#”êú@&aÚÉGl²Ö·êéÜ®w F@Zì #'”9 h¶Á˜!2±AÝMbq•æ2=&DkÈ$j6HXæ­;ÕÑõ‡×íë»± èZ›5ƒÛ–nx+Ð!š%TI|‚‰8òTeÌŠÀaNÎÏFý*P¥»´ì±¨Â©TIXCRb+À¨¤¼ÅH~% …êöÚFß]Ý÷5º¹â¸j9#E—½Ô:È z12TñÐÓ×¾¡Ð b- r”f€Uع"$†Dÿh½ÚäGu`QÓØ¾x¥j’R–Á¿¨Ž0,žÊôþ¨Õš?,Odùjû5~áŠSUòÇv\³›Ñ¥Úë4·Íª‚Ò°9Lˆ†ÉhaPÅ,4BýÒ´—ncBÎÔBe½‘ˆÓGû”ãÖp÷4r¯†}­ÕN y Ïço.þ}ær Bß_¤”'ÅŽfÄ_ÀÒ‹ëîØ%©Ÿ ÜþŠûƒ¤é:$MJ(©®£oùØiÌÓšA,J¾0ÑT¼°3Ù²íÒþò^Þm[ÆUæ»6•^!B¼–àX:©,’ˆÔǘÙBÍœä·X÷Du÷_øOýÿßGYÕ±y_.oŸïå[çÏùèèƒè?¿ý~Áo=÷×ðúñ±Ýªþ}Šy_ q¾SÊø_êÜ¿ýë‰Jªˆ¨â`k‘SÊ9®•ˆæª/£‘UáQUáz::…_ä‹öýØÚæïËþÃ~r]½ Âb/~\ÇŸ»Æånhq=¯p¦“Ikž¨°¨Èè‹â”³*ÿ1ZXsAtM”qØkU‡Ltl.IÜC["S ÙŒ[;…ZÕŠÓ@}œJÔXìNQ¤bš{ !"1Aaq#5Qt‘³6u±ð%24BCbcs¢²´ÃÿÚ ?Wô¾^ª]4—Aj ×o²¾ôõ¸€ha5Ã7ÖM¦Ò-Ï%8ëD¯¶ ?ÙÄú}zÈo´ûJ¥¯B hM :3ª•ï´òCu χ$ݦ®X3ŠÕ\b×§(k#dø¸Ð¹Uä}y3$ _[QÖ51‘ȹ™ m%åº2ëÐYz°e‹¿p¹Šsõ‘dÙ‚M7¦‡}›ç|üuˆz|O6ZJý1£…'¡ÕºÅ’ßáÀÌ ¼,34h4÷½u.s÷h^»‰$±bÕG~º¢æðURßUK)Ì…(¨%1”@ËÄò2´óšÝBœª Ÿ·ÖѤ¶Ú†ÿ'±»˜ÕÕj= qBquá?œÕÕm|:Žäw‡*0<4›9Gö§yWz§/²ÍJP”¸q‚¢“ ˜Q€3Ö;‚4ÖþÏì·EùET®ªª%O%ÂÛI+(Ê™%P“Ã&'J ?˜ñà k(K+tŠ=æÈ:ÃuÓ‰˜µ—?n±f G˜ñ/þ˜ÓÛÿ·¿£Ó¶;ƒÖ…8Áqç„Ú`bˆfÁѵΘ†mãøç\Ô·øç_¶uùïíííòÛÿ¹=aå¹i(¦z´9ð÷ø|OºÒG`6ò”+ëuJe]B?—øŸŒ«¦–ÀÁ³ZƒÕ6J±€ÓZ³tP2å¸C92h^:ãßË»ØB‘i‡K13í.gMÿœ6NÃI@1ƒEîíäîUš´6(ïRÕmŽå‹5‹QÎÊIhk IÔÑ"âqNÛ8Äß)+yot&vzÏiw5´¥ Ê}U¶ýæ@·ŸqÌ 8;6Øß»DæÙ  RM’C.!%ŽÛCívÂÊ‘@V´÷}³¨Ú¢p‚(…S7­Û¶Z‘VïʱN;hÐmW.‹«Oq¤À†.ÓÈBã ›R#rܶÒ¥/<€Sh ™éu5ZÞmdˆ’3 ){ýZë¦,û²-S4C‰ ¢Jð‰cºÿ=l#¯‡Á3˜­ÇÚ1”¬1N–H•¹ßMÙþ¦²•'º÷ò7¤±¹ù‡Ç#:k>@JºzÝ5Í£ü/ž»è–æõÃ:ì×V¥ k¼•r±b%rÔÚW1ž¤tÍ1¯ØDÓž— Ø™êclÙx k’5®å>„®nùèñŠš­ÏÕÂ!$®&†Oè4àœ–ÄYX‚Ü%³jGÊšycY…èŠdÂ’â(ªæ²d\ðÌnÅ ¸8ý©Xkô‡¡âl¥1Šr$ƒsp p.w²zGoÔª«¦mà5Ntæd¶À0¢'˜éÅÛÛ½]»fÝ]¾­Ð´¼’j§Í83ò9}\^¨Ä¿Ñ©k«uWn:/^ó%ÓX(Õí¤ñçÆ%êœQ}LýÜÔnMëÕê/‹\í!²)Hž±b²ÙÏ”ý)E‡³Øn²=I¤)oï~MX«ÕÞrò´ö*''™zÞL•ÿNêžm]QMØe•³9í+©¨ª¥oE)”B–¬u6¹ D\#:ÈÌ`+má)-±í´x[•éâÎÿ°®ÓÇöÿíÑIœï zG4’•úÚgAe ‰w,iñ¬ZE탇/‹ ½p{#ä›ê³Y&:O¶H²DÅiÏ4»’^g“pÀ#åwÉjGÛ¶¿£[šÖКtI$dIÉ10yø¨Â–Åãh Ê•Ûs¯·T’§”áp“@)C6€’¡1rɘW¿4WJúhYøËã=©ŠDë0³Ø¨—ù,3V…E>{"ލLŽ[Ï Œî­B¥ÛDû´³±•ë^uº†Œ”²jnX«<ÅÇæøúrhDH1Y‡íβýYž)>¿³]dø{|ñ½ñèôm;9&˜<ØåðüO„[éÛ~ÑÂSùÞ£@ŸÞŽ?ÃÒ?·¿NiîÂÍ®kÁ×ÊIRFJòk©ã%‰ šÌbb$Ûú,gi¢±¶#SÉ3È{´×B>¢"áv²X-e2oŸàjᎳ Ãê,´Äl$z/hŒ'úú¼qňQÄe¦°éZh^K#IL™çù)øb굦løÕÚféQL9M©\ëÈÚ°´¶¶ÚÌA¸)¹_“5ùmÞ>Þ­¹›iǣТ◽ÅAu®³˜}ݰV\¾‰35Ö~{ÒUoϬ”;Tlüîè$u{";#Ùç4¬!óÚUÌe–yØE>E:Œ@ÌX×C>Ñì–ÑÒï-k]Õ†Ò‚ê’¤¶ºp´‚[EAňIÒq0H&è¡»SÔª•ºG(ÜeÀVû­¬¶ê¤´s*aIwjG*±Ö¡(•,–—ƒšÊå™-œ³‰+óÇ_ÎÈQAQ2žDóÊ¿Xö^ !D6¡Íº ®3ŒcÁ‘89Y v³…HF·íYn±¦Æc%í™è¹ª&5tðé>WoùfÿÓÚí˜÷7hô‘i¾Ý,Ë\Py­µ¸W 'ecå•Ðm½­]7Ž]šÙ9Œ„®Zª-¯„Â*kÖS,Ë©a Š+×S}j§26^£À§Qµ)7øÛV{õú¸W!µÐ,bà†ñ¥Œ%öâRͦ+V´Ý£Æ>-¤ßm‹Ÿ}Ed¨ihºZÜn­ŒÅ;êunŒ“”œÜ9yÁ®C+¬WÊê¸ýUH+Ceä8½!*ne€£Ÿ‚:˜l4Ë1„—uþrð±giUbVÏJ厌¤ËB©Â¹¡ñ/]õÀrÇlß#裸͵ÇêC™qƾ$òÉÐyöéÉj:Ùʹ׫waBé––†¡`¶´z΀ uRkƒ—*öoRÀ£r¤\ë†z“ö+"âÿ‹jÈÞ;×¼àón÷n¯ðd«¬}*ËÆÂZÉu‚ãLýc”qx’¸ÏÍȶ~µrµ¡(z„ P¼æ±3`½Ug=ÐwÎZ*l*óÁ¯R¡£-Jå›fvmv[S¯¨û$Y¶[2Ë3–-g)¸e$ÙˆD6\f#÷š‹òn¬TSÒÜž¨©b 7SHÜR3-JR`åQJHñ&1٭•i®zÕlfœÒ­ÆÜ[¤88›!;¬Ã,¤æ™áêÀÝÅßÀÿ‚}ÛÆ»|~/\¾“…r>«§õº–Kkðèt ý»_é–Dÿ°KføýÒ'ÏÝ1?d’ÿ¾Ûz=mS‚»GªÖiUå¢×ÐT+éªèЪ1•¤O_\2•ŠúÛ~¸ Bƒ‡å·Ô<1ÇòÏÇß'¬þQ¤š°t‘¼oCÁ#ô:Aø`eB°(„ÐR…¤6ù ¦!zÈÈ׷ñ…e±ßÓY^ß»º¦>'(¶µ:ȰÒs©{ä‚Às9¢‘>wÆ7̳E¼Ÿ,co—¾1ŸH×ϱ1Ç|XÔñÝ¿(rèˆc³u5*º‚:Ò¶le×c]^H¼èÂ*iFR¨×â :\ÓìgÓ‡ìô|æpèíÿÖ©öêôWŠ}×8¬ÒÎ2¶Ùx´•]lIŠFyJIQ`ÎÔA¬œ G”ˆ0ÂŽÌM¢6Ç‚§Ö8£×\/¡tNÑéœC½\oˆÜóë3÷ ®vwv…M^”=Âb]2\ðãƒ9±g2ÎȨe2i3ä›m³ïèôzè¾Î~ª=™rpoôEô•ó‡±åör?ã‹„>srqÿÆÂ©‡?PÛ¬þ—ò7x4øÅ°aeïú{i‘þe·×òšLí­7‹ ÿ,¸ÏÒù³~C8i—þ´?¥*ˆûe.(ÕJ'Ãè‘lqGZ¼yHãÓMbƺkŒ@Ÿzsi=¹ÿ˜Ö!í§Õ‹WÙÍÿˆÇÕ0­uÉDç:ëœæy³œç÷Î~Í¿ï?õèôz=[§Ÿ¼}èÂÔ:{¿çÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/boyandmower.gif0000644000175000017500000000320212233761321025536 0ustar mathieumathieuGIF89a:F÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ,:Fþ± H° Áƒ*\Ȱ¡Ã‡#JœH±¢Å‹!°ÛF±Y±’qâÇVX ´båÇ’­ ˆc ™';Â\¸âdÎVVâºaOŸ@qz²èA¤(}Z9ÚÔ)A¨L±Vµ*PjRªRqrxôšÙ³fY]«yòæÆ±7² жîµnA:e´¨ï¢-Ô¢ jíÆ¼zaòõÛFá@vמúvçb¿g ¾¶ù슺l_îdܸ3äÁuYxœ8#é¾Nsî,¹n`V"G“ŽudÃj} ¸.íȧc ½:­Ìt_c£/£’¯‰mvå •Ò9þ‡Én1{ßU¾¯ ov…ùE×'¾ï xõTéVª¿qþù0Ø$˜agøÇßCþ½†Ü–à"=H\ƒkÁð`„’vÆgÝéç_D—eˆÙfVlq!D"fƒYVŒ— D!¦Ø× …Yqƒ„ÊÈØ7T≠5¢£_<ç⇠ÙW´g⋠Ţä"1°b%gÝY¥BJ†Áo*qˆ–Hr©#-.âtrã–Å(áÄ`â1Ü4Ù‘ó-¤£—úmÇ‘ƒ xˆ`€‹ÛÁ@#Zg†0ÄpC€à[ÐFæ~~JÒ`©Eži™ Éiþob¶ê"4®äR©æ5äƒ1Ìê×¢~-xғ抔þm‡kcŸª9lŸ%è(i7JíI|’¦«CÈšƒ¯Úm¸KZDBf7겋+iKº¯m—m Í2ö»çJ”®_1x¸¤¸æÕ«u».iî¾—(ÁÐN$¤òÒš/c¿;oE/²pÁån„°B4±´š^‹Ù;_µðq± Õ$œHK$_°ú·ÑåŽlÐ\.Åf2IÁp1c£Z[íËt˜Ì2Ä‘}'ó˰ÈïqA„­ÖKÐÌnVX­oΰ)ºu\#Y‰ÛM5ù8•[¬p±òF¸º-4Áx¨f· iÀFakb¨·Fº;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/sonic.gif0000644000175000017500000000216612233761321024333 0ustar mathieumathieuGIF89a ÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿ, þH° Áƒ/P°@# pè¢@d‘ ¼PF`Ä…CF|hFe:’)±Á•%7ª8Q¤K;v„YR!—:ÚÄyíZPžÕÉóæŽ¢F…JLêôÚΖD¡&Ú¹’jV«0PtkÅž?$‚êq¡X«¯™í @á͵4Ó’wîG*â*\²~Ñ>T{ذa‰ÖÝÉØªcLj¯þ½`WðåÏr•N­ëó&ß‚ŽçTèAh\“5î-K0˜í¤­ ÆÎ7´@ÛÁN 4°W÷nÙË6@ü`på»Èmð9tÞ‘·öYûºrØ9\sÜûwáÄ9v$oþøÅåÍSþ¶~ oÓ=´–?¿}ÆÛPÇxóчpÀ$ÞE„ €I¶àI»%!yÁM¶‘BB‡ G =§!‡Ùùw›E""¤âŠ;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/lovebird.gif0000644000175000017500000000227012233761321025022 0ustar mathieumathieuGIF89a%%÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ,%%þ±a@° Áƒ&™âŽ<TdŽÚˆâ“+þ¨c“NVyd‹Bf9e@;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/bobafett.gif0000644000175000017500000000220012233761321024773 0ustar mathieumathieuGIF89a%%÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ,%%þ± H€Á*\ÈpàÁ†# ±"Dƒ3*Ĩ±#6ŽØVI¡Ç„W0À’%ƒ&O ĸ¢¥M `Êœ ÀÀÊ›-sêÃõ1²ÛÞ~í!‘ÄÚ %FT\öömti-°”‚Ù3ŸÒ‡•À’Ÿõ7Œe„u¥~ .7¼ûýž½—öÔÖc£êo„-çLÌƲ­mI®=óžó<òrÓu+$LHWIÝRµ»¶JYú;¿²ùÚoKíŽå1˜ ã;ýOÌí¯_óÇZéþ‡Íat'q»žˆn]6à·*(4†£ÎÃPJƃå+O >Y¿tcËÒ¶éœûGìxþw¼çqë;¼ï°!z!üE[)ýɘ<˜²MÛ¢µåŒhÆ_³š·ôd MjOH=w×mÌΉ“äÜ…p{VÇg4ÿó,ƒ@Z¿„§w="Ðtï§xèÛTšû‚q Ú£-sÃ,r%…±ÄˆÆ(m‚3ÁnFT¬³ËZ¬)fóXÕø{¿§…ÏýÔ‰UËœ×|9XŽo¦¿¿t­˜x>¿©òóëËT^³W¾‡x¶Gâ–ýÀÔ` µàí:®5×Ä §}®FC!åÒ6`2Ì AŠ+EþÌ?õ Úí½:§‹ýÛg5ˆëw.’vqÉœÆìÏÒƒôÙæzÊÆ-K&gWfdjä¿|ôçX†žã ÿE!ÀþÞÙeö^?ôe¼ÞŒzçüп\ ¾k˜¡{‹Ø§×*ØZ%ŠPÕ+¥D³«GÍ%k\§v#KP`&¸si¡;U’Ø¥¥VÓVe•¤‚ÀHe¡$âþŽð¢ñÁn+ŽPš‘ ²±¯¯-uTjft~[ë9â9^…š¤xQq†ÝŠWOVÕz`¶ó† ŽõikÛ†#Z§%d¸ö|,OD|ðV’:öçÒôì†{§y¯éih6ž<Ô¦¸iT}ýWžJ¾ôÞoÒ™µ —ÉgCOgã°¶ú_¿|œnlqVÙáa`â~¡4EzçRÁt¢Ž ÖæÜØé¶P¬Ä†›Lœ¸÷ •mvF„ Û{¬‘¶“\ΖgªŸVÅ‘1¬cV6|µ­jü²5_”DEùV±UùþU­j/øj'á ¤n‚Cìxß„ekЀ î?…À·Ù´‚mfºG |ÜÃlü0*¥i`ÔfH^ZE×¥£T±\íKEBÃÍ8ºz‘MYB!ô^ÒÍòë8Ãú†ÔLÉ_ÍÊäÙ]BþÍqEaʼWB¡‹!kû›¤vº µ{ÐÖ9 H/ÊsN¿çOr ƒÕyÜ@.9ëög2Û¾­Ì \“•íckÉòþü8Ð6l­àÚùgf f4•~i°!Z“£/kC´7¡<ÿÉýCÈõ\_®gaÐâõ”kÉ$ܰ0¾l)ä¶g8"z¤ó;L©ÆW4I%D°ÂU`±L‚+bcÃçþ¡ñ¿™}X8ÏCs¡‰ð-)c?¢´kE—¸ U£qQ÷ŒfŽf¬ßÊÛd0Ø.Õé_ž/Þ’‹gV»ëD¹¯Ú‹Žùx·Lö/öOœ5ÔâÔ!Ì–ìÖ¡¢Ó”§­µ@%ñ@‡lµZÄÔÕ¥ByÏd˜òVÜ•e‰ðÉcÙá>¸û¥øÒ½“È>Ÿå[¿{ù¿Šóº}úk"8jú@ŸÔ$'gD>ôëõBʵ˜èÕ›&R‘…KoÃ;šŸ;—Ãßuqy/@ã CÑ…ó÷ÛËJ\Æhi ‘û¡"‚É Ç]Ù3]?te§gt”FÙJ‰5e’; eC]ol½‡Æ~ÞÎôY÷·§ˆhñJ‡- çߨÎõôI\‡*O‹eÌêw”ëìÂ?«Ý/R¨Í:?ŒvX€ù#ý¢²ÚmQä?0à¡4zî“ÐŒö/DõéÂèû‡N95f´±ä©G+ˆJ½q¹¾u—–éy`õ«²ÂStwÚ(v{$Ÿö'ðÆ{†n÷þžÈbòœË“ ­­{DsZšT@U§œËÔk;`^€–®•¦‚¡ ÷ ØÕ8=A•$– QÙxc£ôžŸÁjjz,¦¯E&˜ð®tkb&¸.‹¢æÂTeAwúXÁ *ïã.§A»Ÿ©@)h„Ñ5N»Fy¦  ‰ðˆŸ§ô|"'éO„FÿŪ¨ŸÇáU?…øú>„oéDoóúQóð‰óñøþðŸý'ãý¾ @Þ·µÍû¶<æKÒeÏOi¸‰*p²-¾77Ò†B±Ïv25¹ç)ëu|Ó H +5ý|~õGɉi:Uö‰÷n ¨E«ñDý¡gmÁGÉ{‘î´4 æ·ÝCÏ´‹Ä$~ˆÒÑ ªÉö®1+ëòþÊ€fM`€à]–oÓ×È<åcQÄj5¬Tý,gúÕkÑíý-oÃSáÈŸãòŸ-_–ª¢­ï_ý¿0‡P'Ó¼DS”û·“2}ïuhJ5Å Sf›°½ ÝVM¿/Ùžlnº¡z¥ v¹\Õ±„ÅV·Hö$Ô?Ü›°¼L3UãžïžÊ¶Ë0Ã¦× ëœcFw3VÛbŠƒ"qcIhª ýO Àð+R­ú4-þÏ›€Ôñ>=Ýwü;ÌxÚúþ«ÕúaµÞW?(¡ØŽc%‘9Üùc:R5£‚(g`ñB«ŠÄŠýÛ:KDæ'z¹.>OK”ìø×Ü[Ï‘YèX»ÍŽ;Ws-Õ9½²¶Au8ú €5jé€Zg9¥ßöî°ÊÔóó•lRžpZ5, á^~õ·ŠúÏv öõÙó[^]1ÝŸÐ~‘çgrA†Uƒ3a§Mojy;ù=ý¾q5€„f±™[ ºÙ#Û`/`ˆ88/¸>ƒoSšÈÏ¢к°Á£³Ñ ñÕKWlM$ÒOfGJùäk‘Eý±üŸ¶²™û'Óu7¬í9õ}fS“›4[&_¨€‚]ç]ë;-RBmÝ·G‰Æy!@òܧ&§2çC ! ˆ“°OŸ„ýIð¿”ÿeÿ)ÿ³¿Ïüÿ韠á?„Dü"'ÿŸG×?GÐuUXÅUUUcUU*ª¨Ÿ*«þU~±-~+Úz~e‰éøtr¶»XÙ#wòɯ{QíTr5îD_‡*)ô}—ãl`/½´„cC…ÐxóÊSÁÅ5‹7²“kس²kK¨Ô%¦“>H'ž» Å\Xán¶´©V‚+!î:TÊâøP"u+{Øet5ø"¸(Ð÷õ±w@°ë ’¡o·^ N«r u˜bX²ÆÇ4ú>‚뫜¬gËœ¿ùZ¿•Uü ÇÈ‹ù_å$D‘ü=éþ¤EúÎFµˆŒcZÆ1?KZÔFµ­oá­kSᨈˆˆˆˆˆŸ øú> >£èúÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/baby.gif0000644000175000017500000000234712233761321024136 0ustar mathieumathieuGIF89a*÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ,*þ± HPàŠ‚<8pÆ >ÄÀB#thÐ"D96d81cDŒ±•4™pJ•j,ò ƒ#g¶Ä ³§N„IªdùÓ!Æ'*jŠ,êP RÏV­ŠZŠ =OˆŽÔ3õ™×¯`Ÿ•ÒsSbRaÓ†krWRhÕ†%u•ž’V¦b+×+)=qï¬2Õ. ®^õè:wqÔ*ãþM[e_°€ù=Xåkæ´W/µ©gÍ}Õrõú€žÓ©UÇuùÚëçØa?¯rØÙomÜ_?#¥Û“®c® ((êg <Ð cÒ±ÿJ†Y(p`A‚’0 ÐÀ¤žp¢Y*Tl(@@A—ð¸B…“<ª’¨’lá“< ´ `€U FTH"Ïœgó8±ædEžRUY dÅÊJ +*™NTAÊÉ3•¤H”JÏd%VX tÔÚµktk.TñäIZ¥šê ( '+ä°’Ø «»×JY±rR%D!“uù‰Á‹­\ñ2ä'Pþ¬¬Ð Ã'ÓÕ˜¸ ×»Ð9 剞d|Ÿœl¨’ €@¬®²–§ ŠÇ€TZ»*Ož'«ª8!uR3Á+×øþ:“ƒ¬auƒj¹VÑcèš@«ªÈ~EaOªòT±ˆqÁ*×Í€m– ”“ a€ yŒâÌ€^ùL'ËA#¡\N„! 7u2()mBÍ(¤Ó¦]¬Ø™è@³\³ ŸŒb3ŽBæf2þøŒ5дÒB¢þAæD'$ZÓ ?Zƒßªm’+³`á$Q¸mç`5v⌡Ð8ƒžH2¤HwW+£æ3Õ<1‡¯Ï<ãÔ3}Y‘d‰xt×*rÈj5¤ c*HüÁWzTámZVÜ5Ë,3ÝHÈ k ¸âº¹ Èòĉ;îfÚ@¬ÈòL)â>3‡«„‹ ½É䚯Îð[1dM)T 8 ;ã ¥'=$ 7WžÅ ²Êª C HàQiƒ«fxMY?FlÚLŒh"«ÎHåĹ@‚]جp6aTÈ  +N˜;‡MyÈ!‡uæÒ;èsÍ$â-nqŽ?Þx@;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/ninja.jpg0000644000175000017500000000161012233761321024323 0ustar mathieumathieuÿØÿàJFIFÿÛC   ")$+*($''-2@7-0=0''8L9=CEHIH+6OUNFT@GHEÿÛC !!E.'.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEÿÀ22"ÿÄÿÄ6 !1AQa"24Rbq±#3Bt‘¡²ÁÑÿÄÿÄÿÚ ?úådcX³±f4¥sd_&o5šj×¥4¯{´X‹îyÍ©,"ü’ÏïAi¼-÷³3M|ùÎ>o¯aÀ %Ä €¶aÚ9â7bÖ5o=Ó—˜à* MïA_d#EC/¸´ä+vòÕ©=-Ú™©cU¶‡J›Ý ¨rͯõLôQ@Rlµ»h䱺 ñŠ6J‚G <éÊ•¶Â6e”­àm¥©M›l¦ý.(3$JƤ•xHÁ–Ò¬‹V~Ñ==Õf*Ü×–úd€Y½†§ÜMH†ì…K~[À»y@€{¡¡§Ì×(ÊXoɽ´Qæj •aF³Ýrj÷€z¨$Výé:#˜– lÂm¹1É»iuYKWùŽÕdGÅŸIqÜ]hYü §¶´ ¢–~Ž™Ï“… Rn3<ê²¶ÚJ”{ S[˜†Ð6§$>aaë+H+q=TOZ×Ú•Û[zý«ˆoõ5˜d™8ˆemáOm¢h3ÞÁœŠÀi©RÜŒ¤Ø¥#ýa”Ìh‘c2—$)»¥(@Hâ£Ò´·—ò•¡&Þêå [ZÃJbÄR’ðuÞÂÈG[ ´ó­°‚âÔ”‹’MW\(^Eå%*öª–=9á˜m.¸Ÿ]g€=‡¾°ƒªc8¤ž ÇZ)Ä! rµûOè1ÿ4×α°¿Bxó/¯ùQEΓ¦¼ë¨ä”ñçEÉÒäq (ƒÓJëd@¥÷öøeQ@ÅEPÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/cocky.jpg0000644000175000017500000000600512233761321024337 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ ÿÄ) !1 Q#ÿÄ ÿÄ2 !A "1ar±³#2356QtuÿÚ ?¡qÇ#ªÿS]à7²ìé jzzártuÇ?êEÑu’¯£“ -ÄUVØ"~Er:XdBÆ>²)®'4œ#¡à ™ÝiÚêÇE&®û…àÆ E²ÍäÝI¨»}.º½Q7²Z/´Ö`jË$pÍ¡¿®”XRÑ@#íGu³$ÑMë0Z$ïä>¿|ï´¢)ß ]§°&t]<ÒVÊ +ÈC&#n ChT›$©™H’ã+úÌ„€3GÆÌÊ,¸Þ®$€\Ã#$!s9U݉xìptvß©;GvEís1ì9âö`šÂå®$Abf2(Ài”aì*#ckVÀ–»P]SrÔÉ*ý–¤M¸n[vÜoñ¿áû”·ŽJÜù Ã¥¦Œµ¶ßÅ–ZŽç]³ZÜUBçmrçÖÛ£”õûZ³¼ ˜,…'ß`-ަWšQ®N&BÖ­ÑY%U¶^•¬Ò¥‚_JøyŠħŒáwW àx}au‚ÆyÎG‰cïØè¹Y-¡Ù®!"Þ•Çfæ±1ÒM²Ãq#ÌNOزøTM7L°Ý™+DbGH/°FÛ`Øsua‚f&÷Ìü¶çšÚ¤tú—ñÔÆ/_õR±êc¥­I®Ç'ãl{'¼ÝŒžÆ¤‘ŠÞÔ¦ÀŠ`*{(‰®1œÝÝ­mÚQÚ®¼®¶2Vš¯Ú'JÅ+ %Høþx]äkÞBÑ-£°ê¯i­i»M®]CeŸuf¶¿«Ä´mÞ[&gh]Ø/’F;SÉÐZÛ)H•ýU[/à0RU.”´x±6fX}Xd¦ó!b1Ë,D)K±‘$)Î1ÄsŒaÇq”ê#§?y\À‹Ø2q!Ù”“¹¸ó;ø eÌ>ÑvãU!uÓ ›8új8þ·$ܳfåêZ £”´úŠiÕ®a,Ë [ƒU XSH´:Î4QFè•–`r®4KÒ› ›Âî¶4Î6úZíëmxÕC­s­ú«G@èÊ„@ë°ìƒ"¾OïL˜pš®KI¤PI$ßJ%¤Ó"tÃÍõO.ß,ïfé"ÕÐCœŸHš¿õzMRšT÷ÝÇ‘#tE+çq*J*Ÿh³v콊{²¶\°•IE8 “¬ŒE8*áwЏ¬ÜŒk3Ö5Õ9V7¶÷ga–ûÙ,xFÀs#dóó˜ 1Ï3”…•½kxEéh‡M:IbOâwšÞî`ºíMÅÀëöfë±PšáJ£jØœ6XUÕ‰Ì=ìmÉTß±×`ÂÓ€»TUµúÉCœ\Ó¦EY5~¦Hã•øš© Ae% ±NÊ”™Çb*š˜Ä±|Ö©‰.6¿–Œ¦Íd òkgÔ«<‡ÿ]×uذt-a[Á!ä‡WõmnÞTM«aÒ E˜†’öJãì Ù†Ïȧ-ÑÀ’ÉȤ%Ò‹9“¶¥u3[ë?è! «;îÑñøôndn, $R/`“à#ãcM>(²(r G `Ùe²k,“7™@{²aØëŒzuÛë®úçÞ»kµÏ¬ãÞ6ǼgÖ}gñŸÖqŒÿÞo+b£÷uìù®ÑÝ¥Z¯”6ÿÊw‰N«y®AjÕ'ŒÔq©Œ©‘yo—Œ[e¶OWk¾Ž9ƒÉ1O’$†ãT~ƒàï• `,ˆ:¯ºU‹•DH#oÊG Ud7Pq $È…*Ïd‹|í‹„S¢üNÑ0kts?1dKµý¾‚Fs çðŸîû±œ#õ¡ž÷gêO‰ã"—£!ËËãç˜ùÿœ}¾_—Ççðóøý¸ë¥ÇpÓÔw_këM .ì_.£ƒ O^U%¨d0›êT°ªòÀKȳÅÛ3Á7Ììن^8A§ÝªÝ,’S|Iì7¸¯{<¥£Ø%;}è«W$ãV¥“a³¡¨¨põ 3€ %&Ü%„Xøñ-SY0¨[rÎ:X¹HøÑ& 8 üõO¬®Al²­û‰KÈ®jBay(œ@æ5fWgµ,Ð[ñ1æ…‹2ÔKèÁÁãL£åJI¾uõÉŽÀNXã]Î]ó§•·*ž9±ÐA®,=ËözUµ¸¬¶JJŠ=Ä(vÈ~¢³X®œj•–dÙnݬÝ:¥G+XVÓžékF2fI_z¸¤%Šãuâ3¢sœC$‰íó,ŸǦRÅ¡l‰ßˆþùö­Ë¿òKÛÎÄöb§²+$iðSZ´|z¦Ÿ”Jß‹˜Ù*‘˜ g‘røº›hzÀ¬>¿pô˜„X؂ґØaŸ¼÷“a#Ëg‰‰Ý¢Ø«'§ÓM4ýûøi®žýz÷ñ×ûõï>½ú÷ëÞ}Þj—ü¦ªo#×ïFµ©úmU4±¨eLˆšö°d=ed7´°48ë /®ôáѨT~Zdîx¬QÃÛ ñQ„Ö6ÆÐ–VØÎ3ŒgÆqœc8Î3ïÆ8Î3Æqœ~qœ~øÜqR«Å[';ã›d4í°ld€^Äû³3ŒÇ “>œXÎ%…±gÁ1‘³ÒϪòÎ#Œg>~_ ç?,gîÇËïøüºçŽ8áo­œqÇ3¬ëŒãÆqœc8Î3Œã8÷Œã?Œã8Ïã8Î?Æ|Þ¾7ŽÃc bb‘8°a‘ØÄ^6)ˆ(ìr>’#CZ Fˆ $sfì Ù»& ›¢Õª ’iêã€î[þ£¯¥oúõ}I!üüCü§ÕëÞØözž%._²Ý€ZXW»Ñˆ‰9:·%Ф„ŒS6³ ™Œ?5¼$žG²9®¨7"ó–mö™Ê\¯oòŽÇã`ûxÊ44y™Výqšh [!-‰Ll^¥Ðöƒ,~ƒ¤òM:žI¤“i‘ç(RO.œ’tøÉgï\8äorþc_¬¯^ÝþN?)u üqÇ>¢ºÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/wizard.jpg0000644000175000017500000000743412233761321024536 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ  ÿÄ' !12ÿÄ ÿÄ8!"134u³´#26Aqstvw„±²¶·ÿÚ ?¯¹b x¤‚pÚ£Ì!— dŠX¤Ç´$ Hók¼3<;ïÐ˦ñËûi¾»k¶q”®—¹||+8Æ}ñ_Od²õ|ãÉj/U6æqq­ÕJgEêÍÈQRæî.æV›;šiüÐþ‘-j•ž¦Úö7)[t¶esÌ׿¼Vµh«û-Ö¸C©æ¿íe %µ[@JzN‰Wã0Qúgi¥Ü¹TŽä< Ë'«91ødRXóÛÝž¿°­Ù܃/žo7ÄÆu$vùGÎthRÞ§ƒ­Ê~:i`Šï´¶¸O~Fð·ÙÂâ³SµØ¸oƒ•ÐŸ× Écdî‹¢7<ç‘ÊH5G¼VÒì*]))HpØ—*zÁU ^g+h™óüÂÔ’ 7-«x]ãÝHxjz?:¨Ôºš‹´Š˜ÜùÆìÔWl¶‰©4ù¬ëĸ’]E•òà#*Ç:¯ZaObèS?WHTüÄ¢fµ|?ûµT¥r*„¼ÝeÉ”$JJÆ!©ÞÌZæ¶€Ö†ˆêX÷Ùf·"˜¹vÞ¼²ìÛ‚¤ö¾»=šÍÑ+ÔºÅB7—¶Ñ®vZÕv=œ©º³UkÜd­PÕHº(¹ó’…t¾ÂI›u­?8ªÄøK…¯¡,B—ËL|cIí¶] ùÊ{Giç ¹-iß1÷Y ~*£¤4¡=&å ¯¥RØöª÷<Û•ÏWZë‘\kË{;¼sôäÛZímznR|ÿÄ÷?Åpü÷Ñü%ñ›bê.'Š‹œåÅ|ò_H:6ÝY(]ÀâfÆËÌ@R6•9/hÎ6)2•—¥ú^žš¥r¢z œMµ2X毎Q̇ ²º“É¿) XÒŸKO­È*×Ó†ÉY°ÓŸZµ¤g]~®Hâ`ÀS¯`&ÓACæaIÒ9uŒ‘'€±fƹˆ¡'€¡÷”y¢“|ýºø€õcØ^1e«¹à‚ܾ¯¸”ýB[[Û RÄ¡«3hìt¡f¥u h^·EkHõd8r ‚Ìþ½bæV—®îRS™èeê™×.\ç¥-Ž[G;¸Ÿ[a€£7jóæ™$KÜ#%¢ÕÌ)²¨VÓ<¬ú³ÀgÚèFñy±½ñ ÄõOz\MÕêj¥œŒØÀäXÅfç!5ŒO·'ëí"ý}0`‚s.säù¤gñ S;ã'ún¸ôsC¾î`hz½F_‡mÀÝÜõhwúGV•·’i¤š.Ÿ:ï®»ëœæ=svÆ6Æs®ÒcmsôÎ>ºíŒmúÎ1Ÿõáå ôâ«´ìGëk>b3ë®ûã]fΚæMuÆ—×ýØÆ1,¸Æ1ôü›ÿë'Œ»ÊùÖ[¤Eˆnr¤b;¹¢&YȆifobÜï¹»è¦lx¾3éÝ•wúwìiíßéß·ð{ôúïóïôþ=«Kç%œuŽïÕ¡«”é˜Øê”]™ZŽ Ó{ I„±ÙÍ*Œµ`U6¦´¦Š /«(@èlµÑõxËDt¶n<öy£W×åuÂý¶ä.ÞW¦¢°`QË–V…þ:¶¶!‰ ñè6 6¶Þ1³ óC$@c|o™÷&Où…,v· g½8sg˜¼YA,ÜYÇIËr\S‰Aõ-§•Ž1L-À•÷ªÂï“èì¼;Þµ }[8kA¾œ6!þÒ©Åè’ç&Ð~‚QRÕiêØjfi…••ËÏú2ÎÖÃO¸­˜6ë"ŸcV-c÷ äy xN ëì, BêDVÒ—í­oC€sþŸ|‚Û~):w Œ¥•Æ)B:Å/¬§Ãú%5u|PPu÷vYŠÒ`k Æi·ÚüÖ*ÉãŒáÐqÌÅÚiÓÄÚH‡H –rý\³ƒPì™ ËÈmV˜Žìö«Ù)Š&Æ¥NäàÊe¶Ë7öL+}$BmuJ’P7 @O‚ß;,XŒÅ˪äÅ8 "yª`u#âs¦¹yzÂΫÉ(OîŠfò«”eÉÏIqÿgPñG¶›\;‚˜ÙVOSµUò§ºQ!{¢ãŃuš‚Yj‡I.ÕèˆhŸ7ZÞÀ¡× J¯– ÷HÅGeÿ)¾â|ƒY¹×·1Ò»¥réËú%ÓÚ]ùR~}Õ/>£Ù¨\¨uIg#AÏÏšŸÏ»Š·~¶ºÿœýhá_J§X˜¸*¶CëÏ«K¥^>×Îý¨·8öo4iú˜)¶‚FÃ=`a =€[ ™r{cMá­6R¡”¢8;ŒDĵ‰¡†A7 `{ ½-í¶^sëÕÊÅUìï¤ö åM^úº¿”ô§ ›(¸ª$áãthtê0cŒu]ˆ`ž¿[»ôKµQú|iØTÏ뜼ôM†‰·&èݲÜO –ÂÁ`¶µ¿£üŠt³±X"›dЙ°Q[e)5Ö+[)Ú–®"|).%ù¦áO!m[J¹ú(MöSFËqÉÇXl¡AvDÊŸBÔI(kÖ« žá™®*F9øç“ShQ"Iæ*Pª¬^ÕAË÷)±¬ÂM/£JœÄ)-ßP{Ž:oâ¹ñÍþ£ì×TªBéNÌ6“í ÛáfÐ¥ÙÐȲVcg‚±*9¥c&>Ër· xW‰ËヱZê^Ã0d=ë¦V‡ckõ>n„ä¡4a]‰¶›5ŽiWÌs-šLˆ»pœí°~1ûd• G»ÐÊ¢8‚^þ¸wç*¯sM(å'~¼gP.ò yÕ‚¹~‚¸c—–´év,&["¢XdÂVh\qƒ˜ËΚ:èÈ«e­ÓçLN¥#£!јpM¦ÒG,„ f¢È´œÊjÈ#s·ŸHå''×þfp+ÓÜŸRrÊ>˜áíŽ^PÑɶñU«‘â܇Ø5ëæû«9ut> âjDFž9€nÏFsD²Úc Ra!ZŠ3&¤LT£2,5)™ì˜‰%â—ùÌý™£_ÈAúMS²0šD^tß¼¨ã ÜÿÖ±AsP¹BöåYèÝÔnK—uU±¡K1ÎY)L3 w÷¨þ4Ó;Œ Ç+YU]dˆ}4Æ1‰6Ú=4Ûì‹mˆý¤Ò‰±âR1 Ób=ÄÛuóGpDPÚãu£0žû USS_ôcþ±ºDþ¶Ã˜N¡DÖ7Á8n•&¢ÄU¹s(ÓîÜÓ^Û,{¨˜½é÷ ¢ðà›x¬’/Ré€OFß°ØØ‰ß!ZØ|¢m•!œo=›TI©ÔWÉÈŠº5hÍ.êk™ÑóvªÀ˜:?G '¹­Œ÷–t6Êš’$2Èѽû¡@ö¥TÒHA7Gò‡FÛ?-Çs§™‚‹©–¶Y³òRV)³|”ÈÉÜh&VqÀ/Ž‘fæíz­fÃ$j™tÏ IS¿T Â­˜¬?Q·ÔU ˆ×ïˆÇùcÊ…mG×|BÅp&i0ÑL-(nz¦Ô®Ôʽõý>ãYCjª>…wOu« ¡¢o'Ì´àãd¬ÁLÐSW/,}fÄ$,Úog—6üUù‚ eÀúÇ}%ݲ†ú³¶opÞ,´7¿â:E£ßsÕ½»ø®ZÏQÔ›¦[«é«Ø½ÒÝÕ°)!0ÞýÄĈH{h–ææïº}¾Æu ^©kNž¦$ÓÔð´,V¦˜9‘àË*,Cü¹$æ­ }ÅÎÖÈòaΓFò.£¬Z“â«Þö‰W‚¡™? ¿›’ÅXƒ€qïU6[N´)Ë8ˆ–—­ž•M±â­$›#Ãê•e¾þ‚Dxy_ùáüŽèñ!ÿú#á³§¿L濺£ÿSßÚnÛE,zE¶Ñé€ÂÛGœé®6)`˜'o·\ãqÿSçéõ›êLí.¯émynTìiÂu£%èÜE ÓYÞEÈ:›SáƒBõ•ÂòI¤˜—° ‰Å/3A,šlxx•'çÿ äww ߤËúÚÚñ¾>ûÐÅ|O¢’YÆJÛ$k—A3Í8 ÙõOaÔ²)dßi ‚ªò†ÑÀZôißIXphìjPj8RaJð?kãÚA…ÄJ!Ò_\à¶Ë¤Xx¿²Z2Í&º}¸ÞÀY.vÆYO);ždßã[ý’oÛ¿À·þ_ú¯ÜsÄÍW¬‘,¤]E<óɼÓM2…òË4²íä–Y7mä’MöÛ}÷ßlí¾ÙÎÛg9Îsáááâ~þ?çŸî-ùÿ!Õ+þ ñÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/mib.gif0000644000175000017500000000205612233761321023765 0ustar mathieumathieuGIF89a ÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ, þ±   Áƒ\80¡CI䙘C† "‰‘¢G‹ :Üѣɂ!±eä(ÑäÇ”+9º|ò!Ë™A^LȲ#Ί0öô9S'FžTZðäAŒ3"¼–‘ªN$!JÝú”`ž¡¤J$á°áÄ‚,Å~%‹ÐlE=ÃòœÈÖàBgÑÊ|Û”h×»9{ºlIsçYÁ?s¦T¹”%§p/fàæÇ‚$/>(˜­V¼@'ÃMÀœÓ§+†Þ\whÖÇ_'ü 7-\Ø«Y×­ÉÁ³²õî®[ófÞ<‰ €jÔä>Öl~*í‡(¬n}øIæ¹ g,¼Ó¡ø„™—_ ;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/male1.jpg0000644000175000017500000000626212233761321024233 0ustar mathieumathieuÿØÿàJFIFÈÈÿÛC   (!%"/#%)*,-,!140+4(+,+ÿÛC  ++++++++++++++++++++++++++++++++++++++++++++++++++ÿÀ¾–ÿÄÿÄA !1Aq"Q±#256as‘$4BRTU’¡ÁÑ3Ctu”²ÿÄÿÄ$1!A2Q"qa3ÿÚ ?õJ w”¶²j´™ç€zÜ£i˜ÛÒ¹”ר:‡ZkÜ<¢ç#l||ïÒ¹w‹øx¶±Ïwˆßm•$i½çCñv;y$ß©1£M7ÏÆöb­÷ØDK*©l=âJïˆ4ô.ñA˜€€€€€€€ƒýfÙ®æ8uAõxk¯•wdлcæB»›vÃ.Þ‹˜6ÙEÂV¸yãZ7Rà­`r­i„7AûtpXY§¥ÇÉ3›ˆ… ‚»Å|ô°òŸo0(77òGš³Grbš>}½D-8ïËÌÇüÊÝ‹gœ ù˜‘ÈӦ¹‰d¶Ï!{†þED[)ª•R¨‚¥Ä>3x {&ofM›§êUÎn7àäôÉçyc|R:9Zöˆ> êË·Â$A‘^› ‘ûþ«IM+r“¶\ø,¤%£;X;ÉaSëQ91¿hÒ;±P»„9èõ )FϤ Ù\.³îmaH—–5ç”ý{ø+aÛ"o޽ºH€ƒ¢ô¢SÊîæ0“ø"gh>ÚmÝ-ZÌ`†Hç8æ¢t·$ÖK•7ÿYðò¶fGY¤á“ßÓ£•2Ãn®/&áñUº%°â Ûhߨ`Uœmró'ÔYðü3ÄRë`:÷Üs+L#¼¬ïK…<]Q×­m¦«i…ÊÞԌƱ»~õ¼v•ij$kú2Ê÷r±®õ}j-þ4Ç &òºk]c޼×ËrîL|ƒ«Ä~›õî;–ybìáåmVò5û× ÁÛ½fêÛ„H‚-óÖ?Ì »è¥8ïµ qí—7é^œ]/@A‡šù¢ïØ¿ØR¦v­ð“è7ÉÞÒ£—åýªà¥˜€€ƒ |¥H/ÃJYšÛ3YýJ'W[f¢VØù*ÌÈÎÏsiõ"D`>âr:ËÞçË#GÊ$¨“Kç—µNY¯˜_ÌkãxØ‚;•fl y vV&‡b¬ÁÇ¿”ÈYÙ¸íãä¸å-ûk74µÅ¤lAج]î(L·ÏXÿ2‚ï¡þ”ã¾Ô)Ƕ\ߥzqt¼qkæ‹¿bÿaJ™Ú·ÂO Xß'{JŒz_—ö«‚–b |ÈhQšÕ‡†EKœIDÉ»¥CEc›–´íO}Ž6gÜWk¿ÓÃo5Yýi×ù‹º³!]‰™–G±€¸“àS4 FÚœ¨ß±ÉN\Æ‘ú#¦ê±®wZŸÆšÖt7QÜ®>Hy#ïXe5^Ÿ^ØJƒPÕ –ùëæP]ô?ÒœwÚ…8öË›ô¯N.—Ž ÃÍ|Ñwì_ì)S;VøIô äïiQKòþÕpRÌ@AE×’ŒîB¦˜«#K¥p–ÞÇ«b»ï*·çá®æ{.µ`ejÑÁCc¡­ÀfNÔ‚•¨²­Îe>bäæ}ÉÔFÏW™U¿? 1ž³Ú­´*EFœU«°2(ÚД·m;ÆŒ(­~”Cћњǒ}»üL÷=ZÅfíBe¾zÇù” ×?UcƒA'µÊØöË›ô¯M.‡Ž ÃÌ‚ìMÀѹ0¸÷©©Ü-ÊÑ«£ñõ,ÚŠ-æ7»•Àî| ®7á§.7ÚÕî9Y#Aíp> î¬Éôƒ‡ü“äƒ[p·Éóš‡7bGËvKN€9Çä±§  ¸ÿ[r߉‹e+1Eê[“ÒÃÏ-H_5‚9XÖ Îç¦ê*ØÍÖŒÓñ`±¾»9í,JGW8¤šNy{U…Jˆ­I„­ÆÉRÛwz.ñiõ¨³q~<îqç-M„±ÊËRÃNÀúÛ£‡­så5^·sÝh¹%;’qXgŽ«Óñù}±ÕíÙÁP~·NÅÊxû<¿Ñ¾Ï0@@@AY×5"±_$­ÝÐÞ‰ì>£¾ßÕE_ ßüY‡r•5­hô@H9@@@@@@@Az•{ÕÝ ¨›$nï ¤ËeÜGá4æ3 #ßB³c{»Ýâ¢c"ùòeŸu0¥˜€€€‚XþeOýÜ_ú *øvžÁJ‚› ®Òéæd`x¹Û!¤VCTâ(0:ÅØ†ãpÜ•‹L-FˆXÚü=¢ß‹$›5Nö\×banÐã¶é¸¯¦IxgŠv‡E#^‹NêUv ‹Ô˜†æñ¦£¦’M¯kã;w ,ÚØåëv€5un6@Ú–j^®6³×mæ£åmáX¹:úß'w³‚zXÚ[ ÜÝÞýüvO”ÏI?¤|;†Ì®g%rëÎÛ‡?fþ ê~]u84¾ÄF"c4¸o²E=ë3ÞŒwìPM#Ú°òš_“Œ2Õ(œÜ@Ø„ÔLÏ)Ó?§ª`»QMÒòÈw-{ÉÉ$Ñ–W.Ó*UÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/male2.jpg0000644000175000017500000000630012233761321024225 0ustar mathieumathieuÿØÿàJFIFNNÿÛC   (!%"/#%)*,-,!140+4(+,+ÿÛC  ++++++++++++++++++++++++++++++++++++++++++++++++++ÿÀ¾–ÿÄ ÿÄ9 !1A"Q27Baqu³#RV¤Ó$3„´ÿÄÿÄÿÚ ?•(8ªê`£¥šª®hঅ†Ie•ᬠd¹Äð$”ë­]:³U2ž¯UQI#˜ _TÌdŽ]\ÐxðN|qÈ@²õ«§Wš§ÓÒjª(äk ɬkéYŒÃ¥kZO>Ïž8(3«]ƆíAmª²š¶Š\öê)¥l‘¿ƒ‡4pA¨Aõ â«©‚Ž–jª¹£‚š%–W†²6’çÀ ’PFŽ£z¢¡mUƒ¡©’µÛãeʱdqà€Ù#’üÄoÛƒ·-<µbÔº†ï©î²\µƦáZüŽäïÎÐ\]µ£ÃZ ŽÐÏ êzv‘릿ÓR42ù%Ò˜=Ïu=×5ä·o/'¸À 5Àdxää$GJýGXu<ÛµLqØ.e„š‰%’RÖ‚~7c$î!®ÈÀy$ð€€€€€€€€€€‚z„ëTúîªKž’H4¬/äàµõy e¬?“ÎÄXç`à «]œt õŽu®ý¡¯4ìºUÖÝ´éc –Ši‹Ì·†˜70´~áÁÇÂæ„ç°^mÚ†ÍIu²ÕÇYoªføfŒðáãõAA„z õ…~ú³¥l¶G%7ví[/ŽCýÃ3#œÁŸg²0NøòAA QŽJ ¸8„5Àþ¨.Aëžú§?Ouè<(8É$ ½ƒŒáŽ(Ï/k@ýP ²p< ¦ÓÍwp~h2.šêy4v¼±ßšùDtUMtâ&5ït'á•­ã%…ÀxóäyA²äÕߦ¦ÿÖÿ扖 °³žZ èóÏ(92Ê yqùá¡dþAKA-ÙÏžl£¥uº;öj?áb ¥Wª¯Ô:cN\owY6QPÂé¤Áhs±á­Ü@.qÃ@ÈÉ { ÖÖª¿Wj}Gq½Ýdß[]3¦“ŭφ·q$5£ '샪@@ABò‚Ç ã<ùAq8@kyÉò‚ä%éGÝnŽýšøXƒ)@@@@A=gkJèf·hºfv¨§…— ™›#ƒ¦øÞÖÆZ8Ú 7ç'o¼„X@@@@AB‚…§Ø °çÿ(?49AT´”ÓÖUCKI “ÔÌñQDÂçÈâpÐ9$“€ ŸÚmô¶›U¶ßfŠŽA{‹¶1 hÉ$œ9'(>¤-ÒãCi –¶ëYMEE;•2¶8Ù’Ëœ@$Ô Ö®³Ô·a©îëË£uukÞ"fÖ4Ö´|ƒ@9ÝÀ€æœ8²q©}2k‹grKCí·¨»Å‘² ûR–s‡¹²mhð2ÜAB ‚2 ‚AAð ú­6ú«µÖŽÛo‹½[Y3 ‚=Á»Þ÷´dI“„é…¥é³AñU»×J$/l•kCËrð€ ç$†h€€€€€€‚9zÌÑï¸i‹n©¤Ž>婿 ²Ð÷C!„¸Hkø ÿÝ'Œ„>@@@@@@@@A/=$ôÒ†ŽÑG¯ªj¾•[[ °ÓSº†ÒbW1Î$’â€FÜ8sžI Æú—f~¡éCIeMU¾fSà n6Âcû\A8ÁäaµPlk¢¶ú[gItŒ1v¢}²ÜÝÄåò4HóÉ÷{Üqàgh€€€€€€€ƒꦠÿ tçQ^[SôY騤ú<ݽûgpÛÂ÷ÁÈÇ<ñ”Ú@@@@@@@@A±^†]`¼ôƒIUR²FG¾:R$ÐŽÓð]#òÇ3”ßÖ”wytE™´t]ë4U¦jÚ–·.á»"Ï<5ÝÉ8ÆCFA ‡(%碛õ ôµ÷O÷6Ü¡­úvÇñ=ŒfZ3“´Çñq½œò‚I êõFŸ¶j›MšýMô«mNÞì=Ç3v׉¤ËAàû ˆý@ôÅ©-uF]G€ÖÉ$œ{ÇGº3Ôª®åLW[–‰¶Ôcºþì‘O6Ýàe®i8?ç-áùnä×K5Tõ5õ7 YÕ5-ŒHü’yµ­ã8á£îyAõ ź¯÷[¬f¬þ ÖÒ¾Áf¸êÍ%ªËI%e©û!†1ËŸÐ$œ$€NŠôBÑÓÎÍÖ²O¬u3¡Ù%C¹ŠœœîŒ2iqä€q´8µ¯ ź¯÷[¬f¬þ ÖÒëFi«Ž°Ôöû ™±ººµå¬2¿k.sœ~A “Œž8à ØJzuhéÆœm¶ÔÞõ\¸}esÛ‰*^=ÏùZ2v·8Ÿ$¸ÍbÝWû­Ö?³V Ðki-%4õ•PÒÒC$õ3‘wx,>adEÂépÐ+£Ò~(‘ù¶/*={Ô^FÆ Ce.‹Èů€†x¶b1Ç 0K9Q4³wˆË¡ãºOx@ ²‹|QÍ1¶‹dsiµÉ¥ÝÍÍäq ]†©ÐÔÍ: ãåðÒ‰Î_2*j(Nd¡´êr S½ßQ‹Kcg]Ö°Yð1ÙõDú_-ÒÃÒÚTÌÎ …í°‹ñ|o¶”ÓþI­ „ÖiBçÝ ¯´уÄ:êåQ˲Œ>~ÒoltÛ@\ÌD0|`¶ é¥Ê!Ò©¶,®æ‚*óO³b÷€¢Rã$š*Šæ>IœÝ¾vhaÃäÏøwpg¾‡Y¢ì¢‰_•&¶È^¸aìz¾Y6i¸ö¿Í-Ù¸½¿oǸmÓ7"¾Š¼‘Zp£™]Ñ—=ÿ~7³þÐgÓj(IbÀS’²5/N C’æ×sµ­©­ŠñÚ“`dÞž‚  K¸{ ¸ ƒ»f7‰g(Mß­Q/Hi„¨<£ ¨þuFVYµQY•U‡Œ5ÕHÔ5qÆÅ¸ÿQ"™©<õ*ꢕJ0õ!M5  Úê0àqò UPŸL˜¸¨ò}[óï oåÓØx¡J'Q¸ºszb‘¼ Rà~hÿã1ôÎûnb™û1íEa'V®‡È!Q©÷ÿØñ·9ñ !¥¿°ÊôÀQîúʃÿ]ÔŸþãÝmYpšcSSšvªç¨©PyéþìÂÕ÷µÙ3ÎËKzv²×šbgþ„Ó¼á éþ3÷úsµ„¡$ùð0¶afÖt›ÞÇw\/ç³8xèø/»æÅÀf{kÿÝø‘Œ…="4‰tÒ4ˆ€†!€à!¿€åbßzZQM4Vb뢦ºõ+U!…Ut_Ùó„z?¡7…‹ý‰ÞýF#ê<:—Óúi%úI¤ ¦…QŽhXS†8sBœ0á†m©<ñ„Ä+舉ÔV&V5Rwïi«i7ø€!W}‹ZÖ›r¹§âŒÓ_·÷‡£Úå¦óºUŠæ(gH Úù»¿£Î¬y¾Ì- ˜+U³¬¨ÉN^X̽^6V,[G)õÑÉ ÔÄy˜[efZøÕ]TN°mWPÒjŒ?¯2‘ Îþ-@5ÿšÒF!jÄDjó¨s¨sâ;ÇÚ6,YÛú~ï‰8XSžºÐø£>uC¾¡÷‹-ëXÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/thomas.gif0000644000175000017500000000224112233761321024505 0ustar mathieumathieuGIF89a ÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ, þ± («@¬XÀÀµ†#JØÀ‰‹]{xí"€‰ -^™ñÑV WxQ¤4• sµØ+¤GÄV(d¡mۧܶåºçÚŠŠq# ð–e^½|÷Ü`°0ý{uæ-À¸@CVV «E‰XqÛÆÕ2h!€Ê~/3fX¸pgÉCGÀL˜ÕCί)°¼zt냜Kž­šµÁ@+XÝDhp7mÖ„Wºö[ùnÞ!EÛÆíšyŠ–ñ>Þ<¹&ñmµ3DHþ0hÚî7âÔÓ&Ð0xƒïý¦ßÛ³õÍÎY±‚\úEÀÝKÝfÚm„é‰p7%XX€*´B!A‰€ÿY¸Ç‡{h(∎ "¢h¢¸I‰,º˜âC&ÚÈ‹Úh¢xÊ­—MÀi÷xX±g¤XØ;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/ape.jpg0000644000175000017500000000676312233761321024007 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ   ÿÄ) "!#%12ÿÄÿÄ3 !"1A23Qq±ar²³#Rbs‚„‘ÂÑÿÚ ?Ò=#忝ÖwõyÆÜâó¥®ÔÝ’Å7¦tצÚ<8šD°yÐ*È®2ª+6ØÑíX/bëPp ¨pq˜3ýÿMª-[Õºzß'äÃ5†° ’Z‹¤­­…T°“¡{U´W½è…­›«ÒS.§°1Ï.dÁï*Ü›fÙ¶Õia±y‹Î‰¸ÆeUl`e¼×gµ9Ïòî=0£´JŠ3´vužGäÜSN ŸFÕæ«j×<µ—¤²ñ=-æ_R÷Ò5ÙìãªóÁTåÛi‚Í2Ç/DЪ¼œâÎÕðWMu½Ó6@Ö¯µ ûO;¥ËåFå(í“ –¢DmgW-‘EÊZ¼urž¶³rÖŸH¬c „#`a`Gt…G§©ÇŠë\˜­6²£G[”°šŒ®ÄZœ)Ò’¦ãàÇ¥ô)ü?#W¹\ÀÝ‹#¡Î#Ë© ‰ÖR¿üÙb”“D2¥Ój¬¶:#çÒ‹:ü¢öÊ©1a&ÂÁ£2p—zý¨(êé/‡‚]Õ.‚<µ¤°í³ÿ²jˠЪ…uˆªÆC^ät y=5?^5[¬ÉìÒ™ŒE#m,‡ÙM–2pB×5¿twVZ”’ŠâmBËk|;ýKsþ®BŸ*öz•¤Ñ´¶Ìö{l6+ÍiÌ›‚³>xp5¬TéúETGGcÛ27‹‡ CÁ «$uÜad$ØÓ}쮺ý¦å¿Åu³ª<”¬³–-än™¯´Ãùª°yPïΜ¬žË7笨çj Æ-my6â<Ëÿ†ìLþûF« (`µ(Çé;×òKÀ‹= uaZj1NßáÇê¢ÌX­ø÷ë^™žöì$/U‚ÇzösóÄi0L®WžBÄ]lôùäýužüöµ©ÚâžW@´¹½‹Ej”MJ4õXÈQØFûEèÉ"’bá³È1N tƉ…S¨%²'m¸ (6ç!Þs³¿¿¼çgû<ù÷wÿ¯ÚVU+%Ïß÷ý¥d¥9îrì»ÞôúÓÁ¨ô4 ãÃeMGˆRæP½y#‘AÜ=½àîªÈX5´w´ÙD¡:»öv?GÔœµÎÝ\çWðòM9qœãvÈ}”íáýÏøÿŽ>Y_ýö¿Ÿ!–íF [\éöó#®·3¢£’œùSBŸÔmŽÚ —;P±Üf3Z:Ø’ D,›;˨|Ÿoò1þ¼; Š˜`¯=ïå€QIÓ]"Nà3B[¯ u÷Ʀ}<î¢ÿå|¾îÚü¶ÀHõ9»BdêY¡d,xÂéÿ%•ƒn‘|™™m–ÂþÎpWß9Ù]ßt¹ÙN~ýŒ­¹‘øÅÍŠÞú–o4­±ý;æMYp¤¤ª¾µË:p¡†˜[–¤”ù) ´_Å^Nš¦¼Z0”·»–ÈŒ"»¶…µšªfÓ&+â1m{mºnŒïò@(‚–D0(—jQeÝE-ù3óÇ"¹àúWz“–äj•\õÃ%‰¥¹M,/,кü‰î X]«s@Þ¶è‡]Ÿg Rnԫ娾’ óõ/*€»v°;²ÑLöA;ˆ+™ñ³Ñ`æ~Q‚ÚäFÏjÉv·<„aÔ-GFàXרyfª8CÕ<À<ë@Q ßKLç®M{£¥Ô‹3ÊüÕM¹ÇAYL†AäRR%ˆX ò_w)QŽQsòú ²ËÄêÒþÚ¬7%ÒˆZ,¤‚dI7ÜWô…—äÇ(éÑgNˆÊ'R¶n¤IdžäB6UñµÝ™´.Š$m¸â€î„e¸L=Ͳ’ œ{ÿ”šÎeù&vÌ{çš5…z†ýSH*÷ïX,_ÃT¦WÛe–²$ìûAãËOMä™Í8 Û°ÇyÚêªäšFºœ@aJ¡_«‰ÓMóe|jìD©Úþµ0à—ßu«ºúŸ»é3;Ë–æ¨VG1ëƒEèh™M¥œ¦G“P“0öv l¥7w¶3?¥PôÙ(î·Œô›¢pAËz :kL¸rè,}rð)ëd"±sÈŒ E¡g/jŠRñ_[\f׳ :M ©©Ù>UÊå):zc5wu)B%_A´ŒRD•‘!†ò%@ŽéXUP®Õ¼u2¼$¹ åç¬ DK=cN*Ô£P¥xÂ3qGuP JˆwÌHM×]1s•Æ<¢R«íïO¥~~ëQAÆR³¸ò–ÒY/(ý 9œH5Ý8A’êÚ$]Ôr»• €¦WJ}¨!aØÑYôŠõ.GÓç%±¼Õ^ê•äî^2]pÓVýV Ã:DZ_,|8ܼÓÄ󌬉ïgk¥ó_y\³¼¥üãÐè¢Ô§ßÒXÖEõÛË)q0&/l»øˆª˜Îën{s-K|ßY•Ø$Òcªðï(796îA[^¦´ø|ÌW \t”°Å2”IL*áCw³Ë€I· SD-qNÞ}úPüæ[ÝüLWš;ó|{½p·&ZÎk¾„Ö˜ÁîWP|³6 øß:u-—[›Z©‘€Þ·8ɼíÆë¸¤?7Ñ)›Ÿ<^§Î½Mzµz\…ëHØË2lÎaS P °rŸïñ:„ùw¹ô|ÿ·¾¿¦ÍMÉ׌ebM”ªâÃm:¨cC,Órš4õbr&ÆQ:vÊ.6È–êe‘QÉé§i}W]è`3ކ-M%ôT¡X&.ÛR(wÓpKÅ'l€çàÁ¼ oãš‘ûVUö}À @3¦ üëÐeüÓ†c÷ÎûÇÀeíf%þ7·hGÿº ëèq…ÙEˆ[a©<ãgÖΓ}W[ ë™õåúŽy¼örLÎ^SºÜ¹…ueÝæW#LNÁ›¦[«§qV)0–+땯š¶CÌ6ß]ø¹ú|öwn¹Ožú½4¾7q«j÷ø¾ª-¾x'dâÕ¦/ÁŸÍ¢6–åÀ™·Ç12ŠÈÎhŽ”µF3Ö„£úªtÛœKÝ’SÔ“Q#r¸bã†zˆFwÊÓžöRe¿¦,¨Â=R’2*(ÇmZð…|ëG¡jø²cÖÍ)nA·@iN¦ÅeVe0¦š ”#%ü´hß8÷øyÞQtò\•Íè«ÌÌà­Ž¬ûëÎ1>#\&ºZU{GR˜ª€²šÃT@!Lú%…šAÁVxÇgkþú,ä:{l¯¢üŒ-Ck2,ÝÒø‹¼èê§G¡c²<þ¹OÈv£YËfšÒñ=–IÝ,Fñ@-åó/ ú-|WPõ2Wô¯’&G0¾Š6 5av5u™‚Ã1­‚ ¶2C¦œ‡2e¤XÅHl\*ç¼´<Ï»Rp˜N” 4G"î¦]=Ì„¥Óôšñ¹N•ê26© eµ–A‘ƒ=ªãþoÒáÿ6š¨ÿÅdÅÖh³_ú!¬‰ÁFÊ$7*í3àbruö2àÔs¿Åêß?Dƒ²fÆCì&#ÌåŸèÙ~U="ÎÔI¼£áQ´p»ëìm'”˜]\ºSþ2o‡ÛlϤsåäп/&rÏO’yïßÍ“‡þŽÖýcìævñËÇ~Þ;|-Êzªu õ&+Õ®„iÉÙƒaLŒÝ$RÉÄâUBþM³ÏOg.O÷<×MŠ+¶ÞÄË.Yá‰Æ/Î;ôp29€½¯QJ5[Á*gXÔyžìʆ¢‘ òRXA•UQ;•ÖHƒ_òÚ*”£ëOoKïËý¸¥÷ö߇O…Ò0bå_1­0Q‹·ò2Wä¬&Н³-sS½&ö—g'lg$–²ºŠ.>Åf[MVÛ'\; ä@…røÖž!‹_;ø Çd®#ÕÅÚÖ-F±f€í0<‡|cÕ±Š÷µ¨»™ƒÎlèú>ƒGÝQùšœd½æŸÊ?‚<5@A‡˜@ÄQ-Ÿˆ2´Q¨ªíbÛÍViZeBLÖZ#L~À©G·˜è²Z“e‡_móÅè9Ìðo´@¡Jƒ0ýœsODVî3Ñ8¿¼Ø£gM5LLº¸®xü"ØF˹9Çáô}I?bŸåúŽ=¶—ßÑúúN#uÚ-7\A\AÙu÷ÜÌÛnºëgÛ-ºël¾S²Û')NË')Ns—e.÷½ï~£èú•ïüϬ8º=‘ôãÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/rei.jpg0000644000175000017500000000715612233761321024016 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ  ÿÄ- 1!#$"%24QÿÄ ÿÄ= !1Aa±"24BQq³Á6rtÑð#%35bs„‘¡²ÿÚ ?µœ3¦í-¸n+«¾¾š¢ë7kÓNÌ€‰6aUéñû¬Fꌸæ=÷½)fÔÖZË_,êN‡G ^ïàïa°Å½k£‘Ë,nNböѲÀ ”ƒFÕb0…B ts";ÖýÏ:Ä>a¹êpÌâŽï§\W£ÑU¨>Û(‡ìŠŽXÎ@ÖfµÈ³M4‹  c™‡Jè:j¯ ›Q_hšNÎ1ØÕÂÀáF'CÔX[9ÀF¤M7]Î+µ­rÙ›$•àX+aqY?º66ÓÃkä³€ m¶œ­7ßÿjÉ{›>X1Úª­[+ø­çœ·ûk °ÀZ4x×îä"´í¶º™•1R„)kBT°D€¢™3ž'ð`¹Ú^¥q)}F¤¤“2JGá=Üs7ìk›¬O;ç®%VÒüiy­ «í!a©ó¬oª3¶êá‘ i2ÀëÃ$RHݱ0˜ÊcfI¤ ݦjŠè´ªü{%ØsÍ?œ?ÔêIf’N•Ï.ì t¯(Ò)N°µ q/’Z-#@0g´!䯚¿w¥º¸ßò,èCMˆÁõ¼wPì›%-Õ•ÎAzúJ ß÷ÿ”šÛzÓoßUd›;“±xÊ4öõ¦‡óÞ™%¦SÇþWkSµ½ÎygÖ­1ÒÇ–ŒÚã¢)¾Â¶#ßëë>ò£ˆùÊøžÅj{xîÕV õ-}… W<—J2 ¥` XŒÇ5¬Ý]±áV…©út¨/€)HIJ¤c”Oø‘­ÿgõ]Ãr½†³˜Ðx-è<ãK{‚ ïK…Ò3Gr&>ЬðöºW_×W²îÆæjÐkÀ §ÌB °# Œõ'§!ä:ÔM]1Ãa§DОdùŠR§,˯û"‰˜—÷,ó’ùdÏ{¥{Ý"¹ÊåU=&OG•)%!÷@€Œ<®Bc»·DãjÚ äæ«ÏwÆßf¹è Õíªó›þm CÐ.Æñ²Á ^ÑK¡ÄY†ExÍ–eøÊ+5 âÊ«2Š‹þÂH©3lWˆòéó |¾*bû/õã^v3•j:¶€êîY˜ÈârÛ¾•dí©ùñH¹°³32aØÌÖ.œ˜-´;3j®‘&£MãåÎBŸä7@¸Š…`›H¹Î§€hçÇû’æ¡ÔÖ0Ã*Ë þ}…AIh3£’9¡Xø±UÎ{6ú,tœ~ȭ׌šZÙ“ÝRõL^vÊQ@.¿3qÛ UÕe½}æzžâ¬ñ ­{ta8S¢bš;ºR;.Â[a ¨*¨iwã×¶â–ƒ¤z‰$'Yz8º½vM²½—Ô–€µîGš½Ð³æž)'=¾Ý+¿À ó‚¨ÆTa²Þ4îûW¿ÓWr\®·e½ÆYv¿õ6”¶ÚXzTÇi0ö;Îoou^7[‡WžøŒž»ç>SÅfå[µq›:7Xå<}¯çy”,)Vá×U»jP8ìµ3Ë\%KYPÝ€wÎX쉋‚g’$!”éúŽñ£ÀÏüBÎkò\—xu^óXVªè½µ¤{öÎeA4?¥Sè$¯ Ö¾¶ ãJ€ua´“ßs ´*´I$Qñîw²ÔtÜM=–®Ê n}¯ÓVû”$¾v]íb䋤5ªúû«]E´‚esNs\Ù!ljÇ"XÚ¦¤¥¹µL¾ CJ¥KkýÒT¤Hl<$fIì9ÓJóc±]ä©ÅIæÏ² 'ÇsYÖzÆoœmùç î}Ç®ausº¹éZ¬Öâ§³n-ú)´À¥/Ÿ‘ƒÄÔÖïbÆQäÏ…b³­«¿,ÐD>€Â$,ò|Zšúž3AäMÑ|×SžÛu“ƒ qÞ‡K®ÃÓrž¬½f¤ÐÝ^C!·ÏO«èÛ¼œ3%ÉÂQQ2ò´yÁ6S,ßÔgèÛк×ô,?h‡H^˜kuÔ–Òe­ìm­*©]8BÑËfÊ»Ê÷ÃåùMû<›úhq? |=ú‚êòõ¬¡ìU42ó>aUX¹®Î/B?ÌScªRXÄg¸´®‹Ò¬Âö×Apã, Rôì›Õ[5t®Ô&àåC+ªÝ2·@y@̈)q“¼AÀ­ïf¬¶úFXu—Ø4n*­„eöÔ'õË$¤c$r‚xG‘6bðþ41 é§”ó¸'šHi%š…O3çãì:’×&ÜN ˜‰LFxpüñ¶Þqeï.ñõ»z¹¦‚ã+Q\xŒ¤‘-5´(EI¤+Õé×0$‘»óŽ(Å,Ö¹žä‘Í !á¶×QŽó'™t¼¢ ¥MCy[Öרl¦ÕŽš\Å-5™mQǵµý¹]Ÿ°¶:S’1À‰‘Æ£&µ¾ú¼ª{„²Ü im@²ÉaJ¬ž¾tŽhˆöfcßúóŽBG#’)ã—ð‘©óiÆ&ñÔÍæ†{½FcY»ƒ+¥¤–b®DÍUÐU„±*¬QÕÕú ó/t0FU`£d•õq×E ‘Í!šý$©juÙÅHU½ÆÁ)QZzÒ €À ƒÝ Þ…vÅ4E¤¸JZ(m Ï)NèædcŽ|;Ú}Ù:Ì$o¬QÎŽ -Ï}pÃ;¡À-ˆ"æh€|ÞÌ1>9L!ø³±©ê ðÃ5Ê9·•á7°tc×ô΃¡žÝ‡Qh­nzgFÑì®\\6#„M“ilôFSTÃçD a0ÖK`BÞúa}Eêz.›?ã÷t@¹ç}Öeƒ¿Ã-×ß=ä',ÉÚÚfòšY‰鯯G.®j݆e¶ëê ¦6É–#ÁØGäÑK*xã`Òõµ,¹ëa(ðÚéÿ;;¹ëF¬ÚÇR_;ÕqȨÿQQ‹s‰ª¬JYq§¨d6…'t'‘&s L%¢©ºbág©MQÝg­…)T HÆDdc8ÄÚ Ù¼ëZÚPj‚’Àû«ž z¡Ç‰I•'dÓ²6F²ÆN’HØÜ‘9ŽVªrõ9ò‚O4üƒÍxЭ£ñg‹ÓÐzfšÆaÿ¬zb+I—Q]™’••ê‘§ÄÓ0äšEí˜ñÀ\ä«—ëêuõ/äùÎWcʹ-¹[í WV×j™1Ègró-ûë4²‚Æôí("¥´é_Œ[J(LîlÁäJ¨WÆû ˜¿¶E°Ðeª÷ú5¹Rí£:¾Â’ç”>ËäÄ¥ ;’ãéºÐ‚|#Ý>¨JÈþˆPÅ76fÝlµ¤ß®Õ”D,¡.©>Z„$$;±[íý«% ö×2áeÀ¤Î\%ºI;Ä+ÌAÓ‡Íó.<.v€oØYú?KUè¬ÍhlOí¥´ÿÜìùͯü~#Lü[òR›ñOÏ쇥®E‘O9ÛíiÍ4²˜DVÄÁåH÷<‰£†ŽY,®{Ù1²(Úädlk‡¢?Ò¥°3B#‡»û?9ˆÔ6Xýœ9r?Éáò÷êÀÉ4Íaîl²5Ìw1Í{‘ÍrA#‘ÍTTV¹ˆäTTTTEþSÕBú¡’Eo„~EY×O0U”ÜðúÛ¥x§WÊ p:2.c"`’9£F·ðz~)ö=®Úo@í t?õƛ﴿­sOä¾Ûgœ¨ä&çµÚz0}üü9t·öµdã$<ñÄ”œà—:Y±¦NMCÚRšÒ${¦Dzu]ªì{yKà& sÕ:FÏ ´µälqzÍÆŸE“Ög¤£ÈM.râÐÊ{Ѭ(‘M‚Ð2¢,b'‚vI²5Ç£ÒÏG®þãþÕ¯OöãѬŸx¤øŒë9õ‹az''¡x£ÆÝTBSApÕ ÷,‚1ë£kC…µŒlL޶6µ¨ÄDj"jñÿ‚‹áœÞ·ð†/ñÄßôFÿÆ6~,oðŸÃSøOþ'£Ñ뵟U-ßÕgâ7¨£ÓñÕ}¯šu…ôz=€´¤<{ÇŠ5ÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/linux.gif0000644000175000017500000000364012233761321024355 0ustar mathieumathieuGIF89a<G÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ,<Gþ± H° ÁƒPV\Ȱ¡C† HœàÀ˲ ÈQ¢ÂŒ 1nì8qÅ ‰!S6$IÑJ “TÊ$€åD+VLø8S¥Í’0%²è™räO’DCµ™dÍ¥A%BiŠñ©NŠ&sFÝIõbM+¬^¶dEÖJÇ®¬`uíZ ›dÙ²ÚŠÖa°.çJ d-g °ë6 Èʰ0ÿž\Ë*°à…,pî,µB… +«&*¦øxáݹ*þŒJ5jÔ$œ°*å¸sAVÊ“ªvmU£òZõ¤µë5ÿj–ŠªfÈ‘«RåÄ÷olóŒ"ŽŠYrä©Trþ›ÅŠÑ©PþU¿žJTnŽCŸ ܈g”ñäáEÉÕ|çbõëT‘žªÙ(ù~ø!\)UHäÒIøAw)¤P!€’R 4«¨°Sa€ßFÈÈlyäQ ¥Õ–Yö¡¤^˜ÂÊ*¥„øa)«@ÓÖ5¬À‘†ÝÝÕJ+d­"ä*lÝxÍ,(R”Þc°Pd/²"‹‘méÅ]WW‘T™äDK¢µ\vi&Ž$…ÙÔF„é&Žž…eMk½y¦•r&›GPiM™Un I<eÔ µb¤5]nù+(n¥fQOð—T º˜ŽœõdX˜šù§[%)ÙSÔÔg¨nZy•Šþ*Á¶Q¬ºi–IQM*ÒS«Özæ[:UhHÌ ¨¯ZU¬¼"ë¦5Êš›´v©(²Ñ–4-‹;=ël’Q {Ѭ–¶úm©ŠäÇÞØ®_^ÉUÕ6êì[,e´'®ï:Û¾H©KQ¿ÎZƒïV1a”T B¿ûi 4õ)ÉbF² —=éo[Ï„\±D$°à]F¥ŒÖŒ*y¨PE»6²ºË©•GFÒÁW… õ"kMi4wTÅrY! rÖù×¢þZc i©àAG*BCûå!qÆ\7 ŸSújÍ*¥¥âj©‡*å-$3IOgÜÈh`ÄTÂXÚþx8á·¢&ÊB~4÷áI[×_)q*«zÿWÚ—Ö *©”r(Ån8âÖm`­šÇŒy’c âªb瞃Nwv¯p­™1·M)í^š(ªwýùÕýñyâ²÷7Š…$XQë*+ô¾zðÌïù(®ôvìÉg—Ç€Ünç\$´·:r«Óý¹á£i.îUŸôñˆ×6a¨Ÿ¤ü²3Ó¹çþÄ@ø'¿ùuA¹»S’T`:Ä­ïxþÅ@Á¹ôÁÍ‚ ‹ Jd& ‰%mœ›qªs¸½$g]Ã`ÿºÆ<áQd D "Â'ðxⱎ1PWæk†Íì }`°*~ôœÕ´Àµœá+$š¢³7«±²­ÍŸ´"Á¦®Á䘊YÓù­x°ÙMÓ1¼ðj»àiˆ«Òx½¿Îô‚m¹ÖГÎ<õøº:Üî|[Ø ê #G *ÙIBtßî;»¸â]ôwO³½œž– œÁXã»3Õ¹K¨Ül¬Î`¸ޏJ»Ûr~ÿ–„÷:ûëZ”«¤K ÓK®Ï×ÒÄ#&2ÀÒ‰‚1›øGR'?ÿRŽ…Ë:@²˜ÜÜÖé5\öÅü߸ŕބœþƒ/ÔVbOÀ(é ÁbÐH@†XÔ˜•×)=°md$Éš£¾§É­žRgܳ‰jºÿó£yE¬ï„Ûò#Í 7¡ŽIaœÁbþJ=µiçKJÙjÒŒˆëäbºN}åæÛ.˸_Û Ï#:JÐÓâîhb”*irsZ‹G_SÇ…Ú Ê ë› ÐRC$ñMbñÞ賌ª²“¥Ê·yøÞnâéªÓ¼ƒ@ò? gvmŸŽµi6mÇ&HËLD Õ)ð6Ë"VTL¤²p¸Nnήá>Ф©dõVv5?´¦¡) l` 2f+âk£lªÈfô²zcþf»Ê_ ísýr·g˜æ¯èt¡9ìFŒêÛ¡Í’µÓÅ™4¡¬õúFèšÿ§ùºÊr>ÁN޳ ž$›Ë­T tL‰UakÈtƒÅùìÃHÔ¸?{$#Kò¶H£{£ít™å‰KwÀ6ZI*c+@콉àXH4íx‚Dк/nXŽD•ö5?+\ç#QO©kl`²+øévmQ¥k­m4¤ÇðÞ& u´ø&Þ)›ÏÇ8íËké·¦ Èf$ˆ!¼¿¶"-5ž‘«1_8¯•:ô‰žÔ`ÁÒVŠ·¥[Ô×_“=Õ}Tß’Ök+޾VF|±²@ ž1žÈå•tjŒ‘íDrŸ¸½£K\(Õò¾Õ’!ÈÆÈ?¦¼XÛÚŸ–Ké®Q?+'¤ÿ7+½ªŸ7žñ4yIÉ:DǨ¬ôéáë|^}>/ýÓ¶,rºGˆ1פuèf":ùué^qåôòúy»ÖëÌm•Ï'ñê÷;>¤®uéÔ2â2v"M`uÐŽ¼ÌÁMm‡Dý šZø˜uˆy»É§ODf*ç&JÑÒ•eë\ȼ͘9)…å’×"¿нР†^hÆ‚¿¾©ÐLˆ™»ÚÀOé4UV!‚Xí.R¤µ0 ™þVW|EÌæxÏTØh¿ñ]œÍU `²{[Îo¶AŽ’»W,õ3줌S©-%³ÈN-©—›KJÚ“C´>NñŒæ´$ó_q@\¼cŒÙ€‚m'Gä†L¦3‘VÙ—lp¶:ì¨÷S‚ÃØEªç¹¼­í}XÕ[šåI¨„ñ¶¸ÝøF’·ÉÍÝ–VÂØø®ëhµ¯ b›] :– *e2ÌúƒÝ}oe¾•N4Üó ­Ýnùti[kÚ–_SŽoYïw#9ªÛÔhf°¤*î•¢Á Ê ±Ð)_Ú`Öö¢Íóƒx1Å߬ê:NÏÂyŸJ=s`Tš\øsgðåc H3ùcJÎþUÇŽ]‚ ð 5S@´3c‘ŽŠË°ÄŸ$®ù¿”ªet+k®«¬ Ì䄿75}$eÆÊ•pöÈLrµ‰ô„"„,YB¿’ ÖE´=…òV+þ=`Û}fsGÚ9·òuòY¹§ÞTPm5, :&¼R ÏY}M…LHABX€mÿµ°AL½Øù=†ÓË<»Ú0« q\Ûœº»S_“Ì/íßm_¦¼ ®}îžt×HÔ„1!t¿’IñCî/ÒSÒg»ç¹^>ÕÉwá^1ÇhlÜÊóDhÝ. íœ]†Öc9@£ mr5`Aªv« ^—Øf}{¾ç"Ëæ È}J±$ßa›Nù›±UreFב¨$Úr¢åÌp>"Õ«„w"m•fEúz~¤þd4Â^~nK - u2åɹBÈšx€VM£ 8e™Ì‚*f3ð#¤r²##3ý@:]œƒ[¼­FˆÔ硘¹éd„’AÔG qCmdŸ£E[n(•ÕÑ‘ï|P@÷Âù¯$™qéÞ| ñÚƒ6«–л‹[é²öœf«_©ÇPjt–Òãì5›šò çùQW@pƒ+ÖØÒ›"ÔŽ"FÇ?OÎóÕ7~?w?¼ÄÓÙ§R϶Ê,ÛíWv|ÒÄP£ˆ¡Çˆ!Ùpü–ЏùšdPÊP„¶¤²fGL²<ÓÅ;ÜØîùõyÕ¹¦Ç;ãt×]ÞJ·+iå¡Uƒ,ÙÎyb°=<ñô\‘r+î·®…dw^ìÕo^{Ü–G2@‘Ç8oØí%+.ŽoŽ0¨q ’ « UìӖ⹫kÅôT…²zV§§¦QóûÊ=T4‰ËIe’T&WL’HŒG1ÿ¿ÙèÇ+QʨÕTô¿œéþ$y\ÆÞÜ@‹ Am«¯}} ÃLø`±ÿ‘>á›H®ôŸh%búO~¾*{èî€â‡Þ°Ì1–“nQ™KM Z^³j]ºÞ“5·Y­«[Vg¤Ö&";OâwaÌhKМ3~ KÚ—s¹=/[DZ:ÂóÒÝc¬LÄùyÌLöO!EqãØŠß«\¬lñúûDO¶~'$ˆû5ò9[+•ÔoôåVûú|w<+~žxx·É¿OM(qþ^YÖô~AKY+G ««PcùFŸ3‘ÅG .e“/é ³ª„Ñ™w–¦bÿɸ澽ɈhþÇ}šÈWñ¾8ÕÊŽ|ˆåDú«ž¿ì‰íªÆúú±ïVª7å¢ñ»žt‹ÝG`|Ðkõ÷u14õ¯ˆÑ^É0f1`&)V7°–KÆöNUV5fG0Ñ®nCzÞö®+yéµEµá‰WÙjuˆÚæëû8/­þ+ãÇûPÃV71øß&&V^šBz©k§¶’f8´i"AÞ°Ú¾°0Þsµ©ÐNÖX\—¬Ú/´^O­9hmÌ<¯–˜ž1Çáì7YÉŠ»IÜK­~•_8¥Uj: u4M¬Ë‘Gû(‚Ì ¬ÎE!Â1"VO¾«·* 5­µuin„¼xáó ÓùF§±tï.+r¥¯êvV\ßyↄ^Útœ'fþNS¥i2»û)ëÊÅæéšm-…6wB=Ž8Üþ·7k&E¹AùwBD›+…ÑeufKQ5AE훋ъk6N¿9™üª}›ßx™¿€oùÙ,Û^ݶÖÍ­¹µk[`cZÖØkP™Q&ôˆ‰ý"'ô‰ý'ÃáðøFôBü:¶;'çþqúÓ·ÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/trin.jpg0000644000175000017500000000716612233761321024214 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ   ÿÄ3  !"1A#$23Qaq‘±ÑÒÿÄ  ÿÄ>!At 278±ð"%156Qaqsu‘²³µ¶ÁÃáÿÚ ?LHU‰we<¢"„FLä2lB0¼"À8‰2Ñ9î¶" Ø‘D >÷ÿ Á‹üCGÇß‘ó^þ@Ô”EüWì¾*«öOßî‰ÛÔ ãÀHZ7ìÖ©§¤Z²šm6Ñ¢¬y²›”ÚÕÏ“uæybƒ‚`bûR5¢ÞÚms|+›Ùr6òæåŠj¬ng!u²»º¹žùÀª©£ ¡†ýí›®ºÌJè(rdK@n::â zƒYÓ/ÆBÄf¿"»SdÂJ™lD €ø(”d`¦îD¸J>­Ìý4±_”®ç*f­ Í„ÂM‹&`ZåÊ&mTd$9wØ7ŸHfÒ¸‘@m¸í;ø8­ûãËÆq°Ü勸®¢8Uš¼õÔ÷^¯‰?CјóÎ$ab!ûèÜŠâ–­’Ep%²ÈF9‘¬­-6w§ÿˆoRa[gž¸ê¦>ŹrÅM¤¬­%ö§N¶vHót¢…³ÀÍ—mu¦š4Iµ¶ Ε§*«l®¾•U*¡øÔðmÖ·¥ü^åó…´µãŽJµ˜æ‚-SÕÒ,²öU²dM¶H‡%ôƒ!öêcXÙ±R1b“ðš~+lDƒ¶7¯‚ Âk¬M×YHU™Í”¢Þ.C@“#8‰‰m#ç H˵OÀ·!ÒÝA‡\';6i 8å)n’¼ZöVB«Jkˆqâ™D˜(òûh|×ðªëŸ‘1™@Èp6Êã'ºÌPlröÑê-=¦wOUî’Ń òfulèÒZ!"ED•OOëÓh|qÓWONºÔ8¸jFcŠ£@zèçÖŒÄY8ªµ"¸ÎQY+˜7>™1ã¹ßÖ~n=ßðaJF¥Ö#b¸ˆpŒDAϘ€v#p=^v<™Ä–;Ê[òœùÊ'rO†<¸ƒ¹ÓÒ«ùCf[´L»9¨OØ€¸.­¨\VM>L8×të×â¾6%yñËΔþ°«(¨Üå JKÖñÚ*qƤi³¡ZÛÍmó0ðö·|‘®N2¨zïOqi©ªã(ø˜ˆüùmr$w¸Ü†:§ªžÎòÜl‡M‡œFzþ' le¯³òÕy>3‹a}-é >L4(–6,Tç'yH|Æä©n@žÜg› ÜTTUÙF­,)´>ÈÇo¶Hâ¾d^J/™ ÆMºÚ /ˆˆŠßümt<­¬Ðp;¤¿¥ã}K¼‘+• UÞ” »¸Yû;·Ê¢˜d2šîÙñn¢²lIq±YSMbº &ƒÓ7úµÔ'¦qíÉå29;¯aÈWŽÚÔÔY6Ê´T7R‘H9í{d…DÍŒ\!" ê®OG´^»×ùzx\žÓT¬]Ä㔪ø¤Ú»xW¬¹ÙSV±bÝ»ÍEDD=üP„ª|V£ßüP¹ùíÞÕì‡#'î·Hæ2MÎ"(\HÊÌÒοlGkÆÉÚ…†äáöšñ”N§¶¼Põ›‹m9PJŠ/â®BxÜTý•ÃI‚†jŸÚ$B.ëâû!éðVîÛЪµ«Ö0Á¼WBQã9·Ëœµ¯ÅiŽB1-gM†1ˆ3$ˆ°íÛ}ð{ÅZµfÐêžj°³aÏë„ÁØXˆdŒR¡/ Q2‘Œ!¹Ûssò†)½Þ GDˆ'=ø¨õ0«‘Z/­ÄUX"ì®ÍÅ rb[³ÈÛnXûÏ8-ù!a¶Æ–dm ½E„90^(Å“SZXgY& €ZÖdû$Ķä¶è8ÓâËÃ% ß õ¬½aòµŸðVê)+ô›*|Ít‡"ÚÐ=3æn&ZWKfDipj®ªdQ™Ñø²¤Åp Q·r*í´èm[I·²°ÑØGzÂâ}¼ù&Mzä¤I9MÉ}ó›9á $å3yáq¦^" îcL÷øÈà.j "”ZuF7 E‘ôcVÝ‹rÇUš¶,‘Y¹ ïX Ê[›·ÜÙ©©)é]Ik#5{ÒÊæ&0õä©›&åeÕ­–±È…79V¦?I¢Ù )‰wÃÇ„ø§wÔ6Z]·1MÃCαo¥¤O¨ç¨ôÔUÁ6¶®¨­œ}›³ì]ö˜¥‹™Ö°âÏ“¢“Oˈó}ÍÜY¦Ä³¤Ôlò¶S,s¡KO:Ò•Ó3äã%Œ+ÉŸ‘ÛȲÙ}^2ždɈ¢Ú7t‹Ò¥æÚö¶ú²nRyÎl°´r·ÜòtV<Ø–0’,º§¡ÈwçAôxDжšòCq¶Íé'¥Jþ3ÎÓÝîðtnlb…Ìu‘1ºèјüzÉ«_vÒE…œå‡ ‚r¿éÌK‘4v’D÷¦¦>¢Z“òF>›'Ð\eÈÂDÈï$b ;™Çm÷Øýàt'ÓÍ)¦êtƽû7‰Ì\³7§I,,²e0"E‡“Á¡5IšŒ¤ ˜Ä]»‹9]æÍ¸2›—óFbLqZ#pyÖ‰t\&ÀY÷ÁaSžȋyñ!å*NGê*Ư-a*“sÍqÜ…x…kÖÔ_èí4ó«A·KúÌwm e-y†ú†VK(ŽGf;ž˜˜s;iÜ Ìùž$›"‹w;v”¸«Ú)§U?=°ÐÐÜEÍÙÕΆìGëí#ÝN‹.èOƒ°¤4œq¿m Qó€9Y¶=ÕVÚeͶ¢’àl¦Xé¦O“£œæ‚ÎyèNÙËzSÓkî…Ó“%çRG{f¢Èv38XûœHÓ1êýëÙ‡7ß4þB®™Tv…uºÚžÛ¬~Ç‘c1tm*¬ <Þ¹ Jk—Oºw–Õèš1˜žÁYÔxË©Œ<íN–1Õ&QcîÅšï)@-f1æa|ùš~Ãþëÿ^_BÄ%UTTûª¯÷…ÿG§‡çõ?óôýO–Õåð}_ãóþÿŸòŽÔÄ­Ç+ÅŒ‰˜´z;÷M¡"FÍÁ\ظ@‹âF-¸à!ª) 8b‹âd‹Ÿ92$µËª*¢©ÇTUEQ?1UýЀˆI?BQ^語G¥¡ßcãÃ9ìgú NÍS¸ŸÄî›ý§ŸþáÈöÞO„¯åpÇ—åÙàòûö•^@)ßôATEO°ªwNËé¾3ä_ÀùÅò.êÄnëÝ{¯q’KÝ{ýû—ÝÅ~ÿ¯£ÑéOëoÃY/Õã—gƒüAÐþ̯¦]¿wˆ|sL¦žjmL#Rü”‹êò~åß¿’ÿš÷_H9qüˆ—Um±ü>_êA“¿–Ë|âd ‡Š`M¶@ Š"@ ˆŠ"¨z=_ýÅþPúsÚ+}/ì÷îù<ëßmÉÿ&¯Áýýþ=G­vÎðõ|ßëíÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/dog.gif0000644000175000017500000000210612233761321023763 0ustar mathieumathieuGIF89a÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ,þ± H° ÁƒW(DÈá V¬V4œHðáŸ@)T¸Â FV3&dhÅJG‹¦<(¢Â@0M&d%óà ˜-!®ÜÈ ¦H‚ƒB¤ùsàÍ£,æìYTàÉØ8Þ¼6thÍŠ&wPñ!ÕªL›vÔªDÓG°:õ@"€„[µnUòm µl¬@—„•ˆ(±T§¼zXéYAbEb¨Q³ T’$6‰Ñ2-¨ÔpÛË™5Å:¶¤`$˜E[-*Qê^$¡U_uøWõj«âÔ=›!ÜÚ4)çÛä_Œ%o.žÕ \Á¿!«lÞ:ùMéœK¾¤ùÜäöÞ‰$‚u®}|S§ÂÍ—¯ }VœÚµã¤ÜÞ)€¨ÐcÓ¿"ÿ};tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/dino.gif0000644000175000017500000000217112233761321024145 0ustar mathieumathieuGIF89a ÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ, þ± HP \È!‰‡Jœ1âÄ‹+ZÄÈ‘DB$Cb#Qb£H‡%JЩó„N‰“ K¬ CçÉž›tVÀ$X¢ÎM(uô@Ùó$ÎØVìù´g”¢FÝI‚Χ«PrZ1ºb*ÌKA}Ê)Ó(€%¿.eúdE[§3¡¬Pq,S+¤H=ÉúDÏ“'yWÅhð³¼I=+UêÙb½{6Í[%ocǘCÆø¤Î RU>g­ù a¹ˆ“­G¡Äª€õª^yóÄ$5­ÐC;s)Rt)ÊÕ#xöjRy€Ÿî«BôhR—ó§X“8À—5çiLª5GÜPüW"i}q@‡ýŠïWEó¾y»îHgOx@ÄÛºwT)Q·.!UPOW-Õ”€!±BW]EÇ|H‘àÔM¾„`R"PP¤tá ‚´"ˆ FÉtÅ` ;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/gopher.gif0000644000175000017500000000234412233761321024502 0ustar mathieumathieuGIF89a ÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ, þ± H° HH\Ȱ¡@$‘8œØ‰ƒ)jÄFBE=€@êQ¡pãÂŽzò8Qh…@!IšHBOʪª€ÄË%)bÌ“gÅ œT¹@…GRz‚:<ˆtE V¬`•++óPex‘Ñ‹¬]³öÀÕk×ÚRpò, REYÁ…fÅÊŠ¯ÐÖê™#A³UTÂûnÜ@ǵbv±Š*QW^lU-Ö£i¯È³/ËÌY–.zÕª®W!“.MÊ£ºkÒÞé€_ªNì†z÷fÚ*œ8™{ЉÊáxƒ’þœÔrªÂ­Ï¦ ¨äñÕ´UÂ:§=~·÷»á¡·X~±wêêw·_Ü=7úøÐ‰R÷¾øþ«I_~ó•VM³µtW€äa€dVK¬<± r+]”Ý~dUñW…z,FZJÕíæ ChÅe¡ˆîÖ`FÁ× ÷í¦ÇQiT•^…HÛ+¼vE$¬ V-U–E°yµ LD PRY‚£8áSZZá$•,Hu˜UT–£ä‘% ¨Ñ 6C^ìèQ# E†L¨ñ Á“' ¦T)’åDˆI°™I³fLœ{ ­H DŒ; º¢E¥—ªÄ蔨L©#è¼('$…B1fÌÉõcM¯1®`uí«ßî¬J“ÄÚ¶xñ¾ à¶iW¦ló ~Û—!Z‹ +¾¶îÑ•V,nËÊ «·üRÔ©1°âÖðh˜ É»ŠãÊÄiS#꼪 ²ÒÌYâåvSËÖI‚§­%S¾l%/\­“ves1iܶ+¢{v‹›ùÈå-š&x—í[Ï–ßcfäè58€»Ü§Sn `*C‡k ¾¦î²&Dþ% PÂè@ÄšÝ×[g˜p‚_ZQuŸ€íUt+%œpÂo VøÞL½­`à„ZX!O½ á vèác‘°¡ &˜x¢a$=;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/superman.gif0000644000175000017500000000202612233761321025045 0ustar mathieumathieuGIF89a ÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ, ó± H° Áƒ*\Ȱ¡Ã‡#Jœˆ€Å‹3f\€-H CŠ ‰  ;ÒbÆŒÓG’0M¢4¨’™±—!Ù Ù)ÒØM“' Ö¼)’ 'c,¹ éÒ¨Ì5¥á,‰TšUi6§²Qú4êÒœU¯Ze†“ 3iœd0ɉ,É­gÅb¥ôlÚ kNVîÕ»3±åÝ;Ò£aKm­j’0Ì´8-¦ Ôäã·O+²åZ¹sΠ ó&ö‹µeIÐÙ¶ôx4)§Óæ…äh솳1£†(º²¥ÌE³œLQ0[âÅÛNÎx7sŸKŸN=a@;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/smurfs.gif0000644000175000017500000000210112233761321024524 0ustar mathieumathieuGIF89a ÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ, þ± HP "´R°¡Cl Y]›Hq"+ 6D(±¢GŠ3jÄØñ£I‹F–<ÉòZÊ-cR|9ÐÊJ™,W ÓŠ™4mÊduÀ –4yÆ”èÓç „G+ê¨'H¢¬žBÝÙSaE¢4¸ùñà…³¤Mè°êI³hÏ®@‹fQ„ÒU{áéÙº;/Æ…z nÚ‰x]þ-¨7îZ­+VUâ߯ùº•œ–1ZÕú=Œ˜§B…Tã‚v¬¹´iÌ‹ù~vÜ7òiÚgÊÜxnÚsw³Ö{7TÜ´êÆ yñCîœîFéÓŸ|.¤ìÕE>4¼v;kbV+þ¡lõÈ¢OM{;Ûùô«Wž;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/greenhead.gif0000644000175000017500000000462212233761321025141 0ustar mathieumathieuGIF89aAM÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ,AMþ± H° ÁƒØVX¡Ã‡#"TÈpá ‰1®¸øáŠ@­®]cuÍŠÂŒ(Räˆpa ’"YÁ Ô0¥M+P4¨…ÈkX¬`qeä +63®<$“U š5°SÆ,i2-eMaËÉpàF‹6ŠŒ,#G,Äd ÀoIW¨PÀ@Œ-[h/Œ±¹âWˆÍ"’R0f‘œu. Ã<Ì"FŒ Ò½B:£XØcRˆÖáB.?þÉ(\Ò"ä À¨ £¹óçÒÅä®b(»ýXÒ ÅÐùP!Ìk§¹&’ ÀÄ <$ès‹<]t[@wß„±â‘JÖÅ2ÀÄJ^?±@› `”¸`Œ8ø #°ÀBᄆp±)DÞ|½$Cd?Yƒz<˜è^ƒ+®ˆŸt/ÞÇEgžðP¤&åx"U $ Ù‘†É"³©ÀE’Ù=±PPYX + ð"Å]ƒ_Zné%t.Šˆ~\¬ÀÅ*ØÕg º„Ó OŠ„RäÅÂu:]—+ºˆÝ!:ÑCŸ*¬C~É…Í¡‰’÷Ó!†„Q"'¢è¥‹þÒ$¬`M2iK¦šÊJtYFª"#bà ‹**ìG -Hp—’E½’±Á²:$taİ‚Òyr $°,$!¥‘]Ñ®¤ÂªÖ.ØéNY $°Á-´B‚Ä™çêD^¼é!i[h+ ´NɆ¯½HZr¥7°hÑšJ¸¿Iê……ºª{ë-T±©8€H€ÛA&P§¾•Úk] !á‰bðñ•É%zyüÊ€³C8휺# ò/C;¤P»aÍ òšºoM{粪<'gÈ5mÌÖY·€{ºq&m¹r–qÙ½¹sN€-j®z þÑ’îE Ü9MTØ‹Jè¢Vn!E„ž’ÙHª‰e…k~ UÇò˜3Õ/ ÛŸ!pU@™ŒŒU\³ŒhCqÏ @€^À-3ÒéT!/™±Â j×¾°>D±i!yÉËt@Ç¥3*0„¬T ÅÂÜ‹sD$ ›D6¡ænÚ(Ïö ä|*f镇.q‰Š _lÜÕ DˆÈ\à*;ØBç ´q&N½‰T‡õ¦a±”%+t\êà0_ CªRèË…bd"©NòÚ= !@ÍÌåè¸D@Ü"\N*“±eçú¦Ä„xŠxtþc´1l–$Î Np­á A(ƒB½ÌÀ 3Ø_ ±¤ EëVˆÅ*N¢…Dô\ BªÐD!&¥H$WѧRÉ„ õ±Ð&3¢‰”¤%Ei"øÖ…LU‚²Ïv’ù,×Â$2À©NMj…£òë;/’U7Sb’VÈd ¼P”vÕ¤BdE5¡PR#‚`I»ð³taQˆˆžY%شبµ«]8€YV DŒ%–R;+Mùc‘.(4®@L‚(§0­mSMŠB̵Á@‹• òix‚Ju4K£’q쳆ã&‰î>§ÞM‹¨íuˆ ‚ÄÚÍxÖ!#ŒmåÚ¨ Õ-JÀ[æp¦ÂíHqOØä&·%íiPÔšûÜШ@RÄêTp«‘JsRv,w›D©Ev¼¨+ƒ^Ù©Kî/wwc,¡µ½%«Âu&´ŠóŽ—"1Øï„ü ·€;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/winnie.gif0000644000175000017500000000205212233761321024503 0ustar mathieumathieuGIF89a ÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ, þ± H° *x!A¤H9\H@³gÍ6l(‘âB‹Ÿ¼HRdCC^ ²eƃ(±$9ÓeÈ“UBl9ò泎Y–,)Ô%P˜I 5ZâFœ —.=HêæA“H֔БªT‰YeÚüÊõ"P­UËŽµ9Q«Ú·:SÂ%ê²­ÛµS•òLXt®È½|ýÒ|úïXnÜØe¸ÕðàŠŠû:îZ’åžskmhRC¶!Ïì|ÐMgχ7*pÚ3kÒWÍFDLx`kØ­Ÿ¾~}ÙáíÓ¼{6 \ ðΦƒãÎð¸óá·!ft͹5ñç—iêTî9úï¢u¹S?ø]o³€;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/woman.jpg0000644000175000017500000000566612233761321024364 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ  ÿÄ- ! "1AQ#$2ÿÄÿÄÿÚ ?¤¾ìýÛ·sýÒ‰ÇH²ë½RÌ„¢Ó0S%'ð¢eVKš»þÒk1¶}iSlÇØ òàÅe±cà>h“ 'KKq·„|-ÖZb[ojêÏ6wÖÍeÜ–À6¨Ó&#n³êšåe—à°ìæêWKäüúYŽvÀ†À„Ž ö' ZñFे„xwZ,b’§Úø aiu—’ë.ŽêÓ©Bð¦ˆaÄå>ͼҼ-,‘ÚŸ…ƒ¼¥Öã’÷‘ÚV½¢`ß·¿aŽ‹Ì¤–Á³K2°V(i8¡‡œ r$¤W$R¦ã˜?âLÊðÞBwênðÕmP(n4qü}×ÀT˜›_ëX”Ú#*¿ÆK˜» ™‚„É…X­3¸4Tæd¿Ú›[ -8A Âó!;±\yF8}ß­tžánÃgT¤…SbkŠEÈ(JK °£%å¬qí:Á&-²d¦]8r&e°c+øaƒ,†ìÓ‹ˆ¸³Çz¨ÍÚÊw–éþo n—jNJY·Y™$ +uúãìÉIᘘ74s]-™8É6ð¨—ñ3×LæOkÍ;²45®;ÑéúãU7†¹Ó&"«CHE[¤ëðù®¢Õ§P<€&×ðÇÑh“ž=>áL=Æ;=hEð^g¸guµ#Om 37=«Ç]Cf~ë®mU:º°EÅø7€w4í‹L€Zì&F×Þx9&ÁLp^qœ-=pBYaö…!æPömxu9J‘•¥Xôʰ¤©ÔŸ_>éÇן¿ÿÙ«·¸šs‡\Žª[„–…¯›[”W^ØeaE.<º\¥ZI_‘_5èÅ¿è—X®01Pçeee(Â`óÇŒ–Þ"ò¿fPgë?Æh·É¹Í«£J–Hrº^áp³—G$œ Câ`G ¥P"Ýn0¬6 mìa¬DÉAc9Æ_cÎ3œgÊçëýýtuå­ŒåkÏÆ¿µ+?M«8ûζ}sõþ¾óÑÐxW¦ô+ a~Œ)iZSŒÿ•!Ä<Ú“ãû¥m:…céM¸œåižÂ]ªݺtÞʶ±A/e‘¸7åzµXn¥wZ™U€¬©ºq[D1$5ñS²BŸh™f‚¬;6àn´+ju¥fW„0¤aHB³—•|ãÿí?æœRr„©XÎ1”ã9ñÓÉ~–h.>ßø}Í:¾Ï×ð{"׫7 Fë"¨dR&,$W_ÖnC×ä á OÇ“A>­>\ ©p´J2• …”Gݵ>ãÜ•ÙÍqËJìþ"ÉØì´ýÐùvž‚0PןàãJ㘲[Ô0z¡ÖìÂHD]¬­’¡$`ƒµ4yŒ°çìÑ¿ùEÉ»"‘c~ô±©Sjåéû^Û¶•zv'dØ\™f" Yò+0³6,@F‚.ñַZy•<¯T©Ô{¥9Vê·ý笶îô–Ú‘³T;”>õ¸ÂÌ­ »°/q2òãÜï:ýö[lÇ)¸šÁ„E¸–¿ †§G.«(Bs&{ÀkÐ9qÚ»]òÈdfgiqlÖa¥å‚gÖÞ·Z’†/×?]Ú°€ÈĘ¿úDfD†W*Vt>ó\ñ¥ò#¹Nxÿ¨bPòxãU±éËÓ·&2ï³Úµs¸@‡˜Üå/ÇŠÏäFGI§ À…²bð¦ÝGRÓˆÚúcñ땜aª m®Èþm`àœp„¥øK<3¶í}' ýó‰æm5äÁ‘„&@<S‰i/c8èKÁ þ•a¼)?JÆ\Î3…cë8Î<ãÆqŸ8Î<}g£¬V§£Åi±eFH²ƒ6†$…}Ä´øÒ § ˜ÃÍ»”¸Û¬—q%+BÒ¤¯V3ŽŽƒ_Zˆq9ËIÇ„ã9F[Æ2¬«iöñçë9ñ÷œxûÿ0¿é·ä]·ÝÅkà1ˆJnø¢ÏñÖHùŒ¸íHM§o†þO¢±5–É §òmÖ¶°›JMÕÇOž ×ìµ+¥ýg9a•aXùË«‘”‡Rá'#N#ІR¢ZÜÊYüqв½–”¶Þ\R›¨¾è íI¨8÷£…SZ³dÖêÈß6݇ ù ¶Lr|ø»MB5ÒcÜiA—Z¦N€„¯ CLÖÎRQ…¦Ao#Ú\:ÙÇ¿äËzëqÛë÷*Äœ­¡Í_·qê箚¢=\*TWlÔëê*•ªçâX¿,‘jä“9:á6\·À;¯'¶÷(îySá´HÚ[UÊæ®æˆ9¦  dÓ)FL¥ÈæöÆØô[©¨V)ÙsB†Kc~퀞58æsŒQ-{¸ÏyþDñÛnЕºõ\§l:«][6åuàé;âÿYÛ®AºA V¤Ù>^HvÈ‘°N@7W,,0Œ2Kò¡Ì×o èšþpØc¶¶Å³ÀØì§“'1±¢lد\ìV¼™•’äͧ0ÓVcžxÁMyT»)s/û%¬aXÏA]zŠÇ Èû’2Š™·Õí×pl× RS‰‰ ‡_ŸjYë!è)_’¶'dt/ ne[RÔÒÓöÙäeoNò–ä„”.¼—ÚA¬øÓIIѵñïÏ€óìã ¯ ^E»DˆŸ•–ņŽB°·>>ªó¸‡hü8åÓm"s<}ä½R­tÔ–ðld[2îñ‘»º£d·=‡05žò½ŠÊ9‹lÅüQa •Œªwöîá†áäÕÒHP”íkT o ábYºò¸Ÿ‚n·J1Ä&í¹i²‘¯’а² סYså ‰ÐG®O~›n_Y9+Èk6“GžÞ[jjš‘£LÈéªJ_¬WpÇÄÆ[Ë8ˆ|<5ñç(ôõôÎS㣦ïŽß\q¨GR’ï ¶#WZéè/gñRl# Æ”’E7Qœ`Ä%ñœÃÖi„²æÛåêVòÎGKî½ ìSrÜ‹íŸw"¡&déOÛë0¶W©òC×[-‰ »³!ºùÌÚ d¸•ûd!!ĸœ+ã{ 1ÂÑ ; Ý·¼ 14Û¨,ˆÚ²³A)ZU‡Þ#±w p\°ÎXS=NŽƒ—ñÕJNÍîj„©I@!ñ„`Rœç p,M’â§Æd"iñglg›C¬¥ BUˆ½T 6ÖÁX ÈKrÿwù&r2×ûl¦Sî¦}2¯ÀJ”½³ŸÅ•†>Nކµ¥V¯gã(ZÜ †‰!Éþ-ÆŸJœ‡–©31g"`ëgŽD1!JË/É ðK`çšmÒ›uhJ±t=ë½UÁá «Ö­o ¤.‡EÄP•š|\i¨XÍ À#ëÙŽ2Û®¶‚e·’‡F„­XÉÑÐl8ÙÖ *K„²jw+È‚ºÒÈ*«`˜i¡;r «¤Ô_ÏÑ«b½*SÁê, Ö¢Š!T¾Êõ…¨BµVB¯J*¯`czëQE†ü‘Š*ؤTì«r±J*àþ¾àÌ{×3_ò Š*¨-TÈáMþ°>ëÑdz;‰žúÖ@-‚T¨Bòd«åz÷[PV” ©â$€HE*`QˆŽbc2È*ò€Œ<Œ"áØH![Ó@V ªÀC”´l,Ðz…øÃjøÂU<á ÚIÍVpˆ@¬I4DÍT‡*öʺ٦Wú]5îRÅØÐfÉÚqý-Hîsò~¼'£¿qÉúd¥€Ë.Ú_ÒÐDG#ÇŽÕŸ„?BÈà÷[ÎÏM¬¦ÍWtg‹ç»¬ý•lÎ{Ð+v¹ÞËyosœ¾ Ik6easZv[‡,kåÔ~±%‹ú_ÎxìVßËÐÆcîäoÏÝaÇB,\Šhä[0Âeö‹NçŒ>õ%s,lªÌŽË¢uønFæ.`Íbp8jÐä.ç-w³”—Énèstág¶Ìèîh­ÞÈ5P,eÍ9÷ÙÜüø­Ö06icYá¼*'…Ëú Ææ0Yd Kö¨XØRÝÓB O5çµbf’yR' áV(ã'fHzQz#”?(¾eåŽeåûòO%Üm ¥ rÒÉŽÅ|¥o¨ß!RœQEjÒ[­ÚÁÚ^eê+0·[¿W\JÛúcÓï Òl¿.‹é»CÒs}$ygÓBÔLÉò=¸ÇqYM®©fy†bÖL7s? VÝÛcÅ"hد¯aÆ^x¿Ä«¿õî¹Ð‡3¾ë=¨Ù”F©àÚôœ.NŠu5,6ZEuQªÔY¤€†1%JÏ_TZ;eWq-‰-ýxÍêß}êvs˜qPºìånªÛWβúìl\Īº~Ã%µ²³‰1ÚˆW6ñµÁ—´F¬fOj¨H„r²ŒþšÇõ…m2_\ÜÙ±Iòt¬ì§L‹GXo”†kªáÊwéÖÇ7Ô¤¸ÌVÑ’ ÿJŠ#>}ÒÁ6 ImKc-VŒ1åž®[)o4ѨS58ìY€Áb'ôTI• Š¥k=,zrÉóÆCš*U¯RZ¿–µs ·9g•ñùêTg¥J6ïãq¢ä½ +¡gÈO3:Å4–¥—´g™œÿÒ-Ó¾•­½QÑun 5X½‘åtyþ§£ÔEgÓ4g ãº¶PªƒKÏôUZº'.sÙL­i¦56 ÇG±§Ðg&>̆›rYSÎÓ<¶ZI,2cYsp~ÿ;k"÷"5ùN”^æ~ß3_wWî?ˆü‹ù/Š{ªû'ž³³²p ·,g¹Š$$$â¡ "ªª***¢§²ù‰nn‰¡0µpј4ËÒÀ§C^Ìý‚»>ñßX0`Ú ‚ÞÁ`ƒílouëo×@õÝêWmíÏcèm%´ÅU}Nz×ÖTg#Ï—-ˆŒ•ƒò­eòeL™ åÊrYβ— sRÞˆ˜ NÛ ÔvÛ^m£q”Nâ¹”_¦æø ¶(¢Ù*("!ÃÊõñåv;™dƵè×ìúUYœE èh ý_^Îø”Й˴²3;±w ³O«ÏÇC_,žF·: Œ]ÔÈGÞ:³c ÖÈT~@âI!FÍI ~&¿/š«h©î©¦õ<óZ¿ÏÎ ö‘"4A«†3ˆ$jªŽH” ºñ ¸FbD€fÒªýF ¾<÷Ès}Û½gUû)šê2«®U•F”‚@=^cZ#gÎ:©öÅ·ëÖ¿¹ðâe¨ŒJ§é:qöOˆÂ©QdDøŠþ´?j öì‰ö§ñãÈiãÈ|òÍýºß˯»ßÿo᣹Ãìo¼xxñã̯ pñãLJ58èÔIÏüÕlhÙ»wòMòkl±­_-œðOåPušô ê§Ðg·¾]Àõ¢ÙgQc½xü;ÑÍâ§÷<ž»(oéê3s˜»«ÐÉÓ9ggå¸cÚ´9ÅÊ*16^ô)g`zãý7Ý^ý—™p­]´UNó á†vè!H°–@;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/charlie_brown.gif0000644000175000017500000000210112233761321026023 0ustar mathieumathieuGIF89a ÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ, þ± H €ƒ(\¨@Aƒ#2œè$¡Ã‡ØPÜÈPcË=r¤(ò#Æ’#¢¬ˆ1ãD0cÊ\ ² L˜)ib$Áñ¦Ï˜,þüù¬¨Q£$jbªðfQR J}§™PIåÙº•©©GA6åé5ëW°h©„)X'gŸ9I«¶ [£gç…šViF£s5â½Ëw*B»EáRÕûŒaÆSI‘x0qÞ¯qåÒ•ÜÖ1༊ŸÒm<9£çѨŸ•6}75ZÎ]§uR6Z¿mmnÙðLj»[þ•«ÐkäÞ´…—í7âÔÍÙ q{öA6Ò§+‡x°lsØ¥c×¾Ý.ÂðãÓ/߉ûéêÑK§n÷ý{ðHäÏÇ;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/xena.gif0000644000175000017500000000217412233761321024152 0ustar mathieumathieuGIF89a ÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ, þ± HP €ƒ\È`‡J4˜p€Ndø£G7:¬øñ£B‘-^4™1#”تT Q£H™5ÔùðæE„$væqâ„ÔР''>Dzð™Óg¤znü¹“Qyžå`éÔŸ:»%úŒ+×­>n:ÔÉP­dÑ~š‡ÔSRNžB•«¨[Rv÷ÚŒ÷åW‹VóÔµûשѤ "v«°Þ½9®äJBqÝÏ‹¯ˆ}÷òSK;&Äïqýa¡q+´ÇsÍ’Â=»‰’Kâ8~Pì-mÊå•,ɽåY†abE$B"Ì}±Ë{]÷iˆI.hq“ÌÆštx#"ŠF’Qb‰œ¢4…r1¾jŽo^±¿ý§QvSÙN‘Òk&#sÍŸ`(¬ îv>tÜ\Ç”U4Ê8 KV§Šª¨Ï*½!½»Ý>ëX뤡¨ŒW\%h)á'¼1Âï+ ‚ƒ…B81ÀœµY!¾\hijéÚJJE÷LÒ.ñ)Ë ‚xÔ $wFjq¥xíWá°nÖª«â¿µßY|d*v[¹Ê;ˆç³‹ˆXxL7CÅë!0žDˆ+*yoóh¸wØhÈÆ1y£ô¼ÊccâÓšÓøB‰}”­Öt«_[QÃk°0ØÖ=ŒsŒòcUåÂõ0ÜZ°,#Ö[‘POr‘ê†#ž6«Â×8¾Ç½ªTb#\ªÔUN¥íÜfØÎÛ}>VUiQZÇŽ*È&Zò,u)œçŒm?öF«øö*7ŽOÄ3Þ»@¼¬=Öº²²bfa#*¸{ú¤“ÐIÓ[·{tixè-”6è.sEÄùcç1œ¦u=ŽÕ/»/}kaWÓõ`nØóõó ¬GE¯A0ËëûQ¥>*W¼O(NX‘F8T°’1â”Á¯É_iWús[NhñyÑ&×RN¶“‡Ú¥î5*dˆ£7#­™ÀNÚË{ ²f¹µÆêÄ ¢Ûkwc>;Rò|Ë‘N{Æxö3$I ʾä2Šb±]Ë^Žoïârgä¶¢¤ùÖ…ËäÇ­›P³òü3'¡žâ6Æ)bßΩš¡ ȱÉsíA¼ƒ\‘UÁëѹÛã.ñ]a°ÉN uüB7‘ÙØIÂ/’J©q€uÉmüÜùm¿5ØÕ$·Ée…WʨU ð¶I'Ò§Mþ?Þ?uøÅ &7Žn}‰UcÕ´tUp¦‘°ëiªa\lG5#CƒÀˆç"lDUOÞŽ¤ë}¨ÉmfJÝ™×ׯkà@× Ât’º,0‘UÊñFŒ#z¹UÌb9Uy磪KveSÄ}çÄë—óØû`z6”®ñVaqT€ap œaçÛ:WWc“eë{©àyâUl 6ÖpŒw¾ VIY2D7ªù5Œ˜¨4yLžúš¿ä#š'úªénól6†_'\gú§#Ó; ¶¦ÒʼÁ—Ïê±ÈØÛ3;Ý{möH{ú|Iö£±#«[!„–v´ê(íFyckM³3Œ/kìüKŸi…è¬˶>VÈÇZœ^¿(ϱmmŒD•?Ãè%þi˜Ð¾ ™'¼5“§ÇG…(­õHÕÑ5á±ÎàÅ[Ï5–¨Ãë,,Ë<|¹'‹ÇÊYK(ã9âD»´…MÃ"5‚‘õÕæoŸ8ݲ½1[EdJj¢áLÊ4C—IM"«c!d╲½2Ýgœ ntÕ´ò49•’"ÎEDïgƒÞŽNq¡øDãnV×䇲éw1÷÷UÜWÙF¬›[‘3²HWñôåÙFTÕX¥c^5AÜ5¼+›ÕkÚÛ+Éò;l“¶¯Êê§I}M˜%Ar¨!e@Œh4cÿ|Ó‡7ž9z¢§Ý·¾+û\ܶMn9OY™å5X½l©v¶æ®µƒž ÐIÃÎöIXÒ.3Çc$ I2«2ÎàZØÌÝ©iÞÔª‡‰Õ쌳-œHO5þ¾¡ÜÀ¬Dâd¼†ÊS¬ ûÌÁ ¡Š6±ÎsD1^„iªèÕ•4¡æd.ʬ]X•ÀU$Œä®žŒì„±CkŠâZ„IÀÈ¡RHÊÉ“ú€1]0þ#§M¡;å²vÊ‹~EV푟â„#^ö«§½#UsQ«êTy}LT{ÛÒ9ùW×j1ª«9=u¡5NmÏáÅ‹$ÅÇØcA«`¤ÎWÇ3Ë!Âd¤TTt_ ûÓ¦²Ùc̬(¨†˜¶#Yu£­d‡tpËζRø,¹k눞ҕ¢{Zö Õˆæ¢ß”ÝŒèâËõýÜáĽî'lUæ§«™$d¶Ô1ŸI ¢X­{_‘ÚÊŽa¯±’Äy˜EA5o²v©“|-B¦JˆÁáV( 2–$à`kFvÌí6QKº—¤®x↢ÉF`egS£É\Ãg>2«Gˆ€l 1ºb°,hš_¾‰ìhÚŒkøB"'š";„NŸÏÎŽ¸_@ˆ!DLb±ÉlŽŽHÃ’¨4_7¢¹ü£yòr«Ï.UUUèëé©©À”gLé^î|}'Ûì ñ¹Á\i=XÿÛͬu¨;£ÚÚ¯Mw/Û¦?d1ë^ë1܃dÐÔmŽ³Ùø®ÑÄoã5F¤Úë|D•DEpü+–•AìÚÿcÛ ÝÉöW¡1Œ2.sE}+_Š·&¾Ã3úL[!G…Mþòš UÍÜy¡äL­òL†1ÏKÅኮ ±}¾õŠëœc•À®‡¯sgâ¹ÕWÚ¤UÚšÚmE%tB/ºMeÊCeD 5À=Ä1˜;áñ½ò…vûzÛ|¶½m"Âmž?JÆ£e3±Ë Æ,úÉ£h[ké5ð¼&Ř"T9îŸÃŽÂ”·ÞÅ%ϳúÇ¢ŠJŠÚKÏÝÕ‘ÉæÉm«¥¢§eƒ$—bôÒ¶ GG=û³ûÜ6íâ–;RÓ@ôn*7ˆUÃ<¯0±ài8€»à5´Ìk+Âd×…ÙFÞ.HŒ ã»MܳS´Ei#–¾Î|Û@ÏöŒR²œÇ^ÕW ÊÇE›Oe}/qÞùM±¼®‹*퓚(äˆr"œHtb@_=±ç0&{Ä% zFÆòÕŠ«>@ôôœ<ÓuNÏæĸi‚PÞg×ÄZˆ„M£‰lI+g£ÕD£´2Œb"§T+=6ž9‘×6¼¨ýgL}a"XH”„’Ø ?Œ4FçtW”l_à‡;ÉFK”ÕÄÆîÂbb‰ƒ’CŽ#ùŒ«×¯¯eM¼E0§&HM:°ž!©WˆñdäéÐVÝnC}o’×X¥EÕDÇuÅa[f}Ct3ƒÖñ9Hö1þ—1®ˆÒ#˜¯jæÛ¹›|ëÊ Ùí›i™%~È‹u‘à6–×ä¾È©0|{;ÉðʘæŽc‘Öa±É‚9 ì”9m”u:ÇÆÎ»ÌïÖÐuvŒX™6ar3´/bÄ!¾_k"#_ü–R(ßgìÔ‡ß_XÏ;É{¢#•õfÅóÊåâ¹¾=:­ÍßãÖf¹Ž¶Y MËæÉ‡Í“ì•J3óI`è²"”Ñ (¤säµ…mß±¨+íµíp0ÅLÕ‘J’¡'„nkñÊ’{§ÌtíŽëm¹F–êz‰'ZwçUòäÊÉ Kqs§ p@'RGïƒ`keUl'"¨‡Ê/EðNPˆÖ£Qüÿï„ãËž?::äí±îÜëílàCÈó¹Ñ!XM‰j×…‹24i%%+Öµ‹ LiU­DkUü"""'GIc[¼Ù9šÙ×_¾*›?£úý¾ÈŠÔÚÀP-õ‡@ä t\…ã¡öz3w{Ìc#ØwŠ€c@…ÙciP-AûZ ¿ 0Oo›BcÂGrƒ)HF"=îUSóœæÂzµÎE{ƒæ¨ªŠþAÊù*~»•UUçžUUWþú::äë<ƒô­³ë«6õÏåZïæõ¿\»KšJòê[G…oi ¹€ö‚-„¸ákÝ)<žƒ˜Ärÿ·#y_ö½:Ýϰ3ÁÕâð›eÃaiWτ̒å±'@›m]l‘›5&¸¥,iQŒÇ†Dr%cÆ÷5NŽw(MñËô#Ù+»_“ëñmõkµ;Ùõ•µ˜vöµ­¯ƒ_iOgS[Se "O«®5ÕHºdqŽDEJ2EŒAì!á«^äUãN÷Š¿)±Ü;cõÅ á¹Y0%6A\#Rš¨q¢{ÄW±èâ îcÕZåE::«n‡ãÏâÐcõÿð÷/ßÿq´‘X¾¶½ïœ÷Áˆç9Ãkœç8W9ÎTUW*ªªªªªªª¯ïGGGVÓ×å:m9=~Qó¦ßÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/fredflinstone.gif0000644000175000017500000000234012233761321026054 0ustar mathieumathieuGIF89a ÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ, þ± 8"\¸ Ã‡Ø@‚¡Å‰!^Üx1ã@Ž -z I²¡Æ+H‘ ‚Ô*R*äAHâ$GRÏr¦\•seÌ‘7òÌùŒÔŠ”GÕôX1(á:±Z!uSꉹ‚è³U$VL»ôjÅ¥Œâ$ºj…•©oË^%±Öë3=FYM-µ‚„_³-ŸØ-Š÷(©'¥V½”û 'uÙ&†Ê–±C;í=:ø«e‚-9÷4¬v0©ÏXqªì ÙeQÈŠÃdJ‚òa•¢’P¡â(Eµ½¦Ô]×hRiUІÚövJ¯·{*ÏØË,Xp¶ùø‹®yæ%Á@0œ|E©À ‰¦žC$tÒÉ ^`ÁP\_aáÖ] dá%"˜à{‘)fW[ @Pb…ð6Ç ªÈ_dvb ŒXÕ¨Ò—\˜!‚ü•2 +Ä€‰*ðt˜…䈤‚u•Âä< åPSªpc†>À"ŽpÙ!AFI”Z*\R¥+Êø£\²T@;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/gremlin.jpg0000644000175000017500000000711612233761321024670 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ  ÿÄ(!" $1#ÿÄ ÿÄ2 !#167uv´µ&45Qqt¶ÿÚ ?ùÜògâž·Êét¸ÛßK¯2ê°µ€Ø9ªV¶QëL—è#(û˜›–¬ a£J8½G ·FË(Èo5:¦±™Vòpœu Ö¿¶;ÄV/J¥Xµ®°äÚÞ+irÞDë¥è¦ÎªÑgt]§Õ»ÑV£¾š¶U‘H˜•ÙéõIHèZiÚ¬t˜u ÝKÞÞ:ðWÜÛ1âc>cC§ÃÖ/_šþ*c9ʸ·@Š8…h‚~ãÓ¸A‡ª¶mñªº¦ËMŒígúT4ú½¥Tã9­ ây“fK lˆv(v.uV’0¨fWú`Zß9lI¾ö1宯=/ð½>{.*èà|t‰R£¸é:øÃ$Î^×%Tbúr$*{ªr¼­=W›øûñçÈüUw‚/¥qÅfú¤èpºü¾éjÙç­u1Sƒ¬µ@ÆGJÉŠ³.Š\f³aU[òºêÎ7CQUÊ|Ü^ð«‚$’@þA‰ð¶–Yê;ÒY¤œ“ÔAÊræ•+ÚfrÃÉñ÷.HÅ^FûNûI¾/–³¥¨`èt= fÙ蟵¾ÏÜýT HªPlkR‹×~dH>Dñ^—O©nFûx› fòú|å´ô-¯„K=ŽrÕØÈD¢eÆŸ‹¬AWAe]]?šEMƒÇè8¾hüÐ-’è­×ädGTÉŽôÄÜW]çû=xïKÉ3·óÝNM4yn.IM$ùq»Zégó—ÏpÐéžÍÕ£âad §z¤«‚ºÍš:zóÂÂÚ{tZFÄü×ÍiŸ'hæ\ZgG¢‘òpˆ!Ïå^úz%ªö8ÖS<¼{þÄËwªëÛÖsFºJås|ß=­L§îxø£½ªìÄK71cŽ3ÇZÔººDø„A.“Æ×Ë‹Ä[^œíì&¼¥æLß/ó½¶oä•ÐwŒà|8qõ>:7ݹ¦º–û›;=ðMMsEb[¥È?*¾{õ)c[¼¶ûÝ·@Î Ì|fã+‡Ef £›¤ÎygC;@š]/)°™ôY£­ò=¬šàÝ_#iàŸ0Å7Ž;/ïùó'Î^HÊËÙÉëû#£EMßöØDüPk#Ejñ\þ¨°vz~M` CN…¹údö “­'1Âi¿Õ žwüÐÞü”§-ÈŸ€ä¹;ÇÞ(WŒÁqî‹r|{â?pù}GkªÑÿCcsCžðGÆúhäeá…œ0D+ð™$#Œó&¶¯vß?Íø·Éâ·4]ìûÞŸÊ}”%¥©¹›¥‹Îòü‚eÔu‘ä`—+AìånU°‹¢+¯øå㌷Ø<ñ„–¦n~"FÍÕÚÓÑè—ÛÞÐt½«x1Œ©è¹ÎÂxyîY'«Ú{ \›Ã\?ŸÐµÝt9Ð*à;Òœåèƒ/8<6R|Ì7#úeí)¶E>2QÒ¿2Q“ýöšª¿˜|$+«›Ü*:m¡Õï%,SùüÔïa’ÿ°Ø^Ú¼êT_ÜCaÆÍÌç&²õ¹ÎR=¼ìæS(i#’¬eg´ |ú.óUpR@+. KŪqŠÔ\#%‚_…"izÖ¦óCüïMÃ÷|’®©§ÑdsÌôÖÍTVÐ"çÉm1CÖ o¨‰›¾qÑZP9Ñ©L‚PÕ—çiÍg¹ãcf´êèj}¬³Ç ˜ß›·¨P"üp:¿vF‹Ò ¢Q«Ò"-I˜fùw€Ëéü©Í>ú©+9Òc·1ñÝXÈöùA±ïóˆn,Õ\êg5 ¨­‘ÎAú=t6!¶€K X°n½Ž!’Ô¥rûZV !$ÍÅ6ø_ý«>C:ÌZ±h÷ö´DǼMgÚcÞ=ëh‹Væ-1?iˆŸX¹113Ó11?®&>Óÿ^¹ýK¸œzìn—j© RìØÒ s‡-Úñô0 µ¿U<¯––›ÿ©’‘Qc@Z*{Ñø‹¿g—§\—5ªö'»ßs«- +œ`(÷Ø´–5lç¥åtŠÎbÈ-ükgÍ®#‘xRzØ,ˆé„³ô–¿ÆÂ0VÃ'MY´EÀÒóz2‹¡šè9)R]FÎ3v:Ç+-*p±®ÐêÈX[êóËzZÆ^m!pM¾†õ¥æÕ°Í_x¼H‡Ö¸MõX; dhÕM Ñ…šÍ|‚ÈËVs˜8‡ ªpÞ„Ö¿á0IY ùFzìo9ƒÿx~a¯þ7öøÜŸS¿íùoÁ¹j÷lf±ãExBñÝoyÃt<Þ¶¿;TRêã;V¬Mƒ¦"g3ó§Q™ù=_qéxïñߘÑðß-O=¹øÉâ'x}žTÕ\ššþOêoÖofuý©(³Ìf¢‹-'µÔôEÉ´6c1]ï:^Õg¨è5µÖûk÷ScWWQ?—ÞÑ—3*º](ý4Èß½ÑApAUÖ½BõåßZ)Îù+ÆgŒÏ¨¶®¿Všº˜ Qdðô‡íÃÜ4ñœ¤0¬3ZéšVéëf­ÿ̳VÊùßx7¢êçŸÄ+ÎïçI…õ½OEkkiï]Ä4«ž¬=ùƒ ÍUöù.†©l¶oŸ-¬½”lxèþò^ÓˆáqxüŽ I–¾FWGÐ꾽ÑUò¢Í7㲋U†¬¦û£·œ¼¹x`b–_‘ùå;~pÇÃÏÂét½…5ú0tNÚйìL€9£a€F£$êdУ¥†g(”G¦ÁÌu|—Üîíå¥Ï  ØŒ¤ÍÏó8Ιz6L¹Ü¿ 哳#ô:m}¡/ž’Ù²µwÇÉrÛÈnxÿ?+œ L>· lžNÎLû ./š«*e!³ŽKY‘h/ØmB8£³k®8U¿# W:û¾4ÆÈn"šr–¶³ @•Ð_@tw8Z?`ˆ³ª›™º«ªšÂÏi)Ñû‘t/r\¡htÝÕfnHYÏE × ù}#‰%"EH•‰¥oñ7bÙK#q(R„Ãaį–tyÎ;'c¿î ~{§_=ìŒ$s N“VR;YV/7Ë0i«ÕPÌ€öý*äÏ".UqCÒuZas¶¥«B€×)h;EoY¬Xt­&#Þ•­}¢\¾DšÄÅk˜›DDLÄMbf#ï1Y›LDÏÞ"miˆû{ÏëõŽ6´ÚÖ´ý¦Ö›LGê÷™÷õ¶~1I<þ 4YüŸÔª`Ë‹ìØÐ)>°”>e½ÉcäKÚö÷µ¦g(|θò?fš¡Ê%Öt $ªã VQZ²6*² j%שØ`ÐVƒ‚œÄŠüË{Xôz½üÃû-â¯áeþÍ‘ëBÿ*ß܃…fó8þª¯L¿â}kþ^È·´|¡MzŽ£å¶&¤Ú"ö"ÓZÌÄS5¬ÏþG£Ñê§å?kyæÎcûî¢g¿|Þ2þrÄþ°~µgÖv¥):Þ–„!/@t;¢ o{Z¡ìP¦fæ$:í“8w™¬£ž ^"WÏ+Þæî\vL¸øéc“É¿?m„;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/speedy.gif0000644000175000017500000000234412233761321024507 0ustar mathieumathieuGIF89a ÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ, þH° Á‚$°)T€”³‡¤">œH±"ER  ¨¢£C‹ 9.Ķq"©Q*Pñ1dEŒ‘J¹òA–.+ªÐ8“ÄA8sBÌH⨟T¸“äÃ*|$Ñ2'Ì’2þ *tgÉ™IäéD¶Óœ•Keú|øD«Š9e;åY1‡+D™x ¤Hb«cÉú¥»¢%)¨Uv¶w¢ßk³‚LØáÌ<˜3¯ÐjR _r=GÎUf©bI7><ÕÛ”]“%}š`jéž ;§µé¸o}ÎéM¢wRÞ¨óHHbe\å͋ö9ðmf³ÌçŽ;;ÏœÍ@ßÂΆ]ðìoà¤=2n8³lž©Ú;>·Ûø|'€ _&Í]îbŠ«FÖJ¹mÇ]OT¥WCutš|ýͶHÌát’i]sô‘ $FwZq¨yH $´œØ×G`CBŠ'~¢J" )B‚Œ7*Ř‹(ÒÒŠ7¾˜£‰'Úbs*9Ô"2Ú8$-6ÒBã3ޤÂQ E÷á‘5‚(ã‡>¤P™fb9eŠ*mhæ›o¶‰„‡‚çxv9gFyŽ;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/puff.jpg0000644000175000017500000000653512233761321024177 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ  ÿÄ+! "12 #$%AÿÄ ÿÄ9  !1"Aa234Qqt´bs‘²#$cr¡±ÃðÿÚ ?P¸kV»Ë9Ñ­q¸,qÁl™×W8ÊŸ9ZSZd…w­Ü:¦6šù6Èý`Hj>s †×¸óŽý…*ôF¨ ˆ¯R»ëÅF0ˆÀN^Ëa¦1ìNqµ“-3’ƒ]¥h\ýÌ=â·£òŽå ñ+Oß·Ú˜ü¾aºŽ{@iÞ§¯åp53tq¹‹Û–NîcT®YäO_£s5³ 4±vè²ÒrE¬‡!oÝ;â°ü³ZŠ(û¹Tꦅ ¿y³QB5œ4ÓM¯_ÔХ 0Q.z¶f´Bƒ"‚‚–6—4Ïá–©mqC&’¬d•-}”°#K°ßÔUÉž¼ÅšŠ“%g`’‡‹™7%\kŠ@®U‘–Xؤ±:;+m)û¥ÏnY¾æõ#‚4sä¼îSM<ß U¢ÅW{ÙO]ÈÎ_!~†oNªyeìÀ]/ã—Wÿ5‰(Þp½°r³h¦ÎV¶f%b¥Œ¼X`“GÈ®F•KU½€Ä¤¥ 8hŸdŒÅ ×ø£ ÆÊwB­§1j,l2qI­˜Ù²Êþ”™‘cëV—B’c‡UËV#¡Çc"µ*À¢éϱ¸é}y€/Û:2µ¨¤Ô ˆyAzÌ5…dÂ#(‚dƒâ¥WÃtY5%--l%\tà8VE»/m÷»-³.¡ !¸Å§-â:ŒÎ¦jŠ@¿fžpè^ĤeU"eP{*Å i`¶{{bLîÜU¸èÀ7v q²„e/'QйTl™\16Á6²¡hqþá´ÎD¦¿ƒ™`'¬Ä¥«Ì“ëŸíÅ# øÚi,Š#õúzÉ/ÉA¤E߯Ö>¶j­º™ ‰zž3U•n[DÖ„D1'·AØ)&®GØ…râözóØã¬½|)Úæo!r+@%(V&Ó!Œ^(—¬L­ÂÛ©¼AQM‹ùW”{õ—UÔ$AYVqb»2ï¦þ‰=êI ’1¨R£MLǤȪdM´ƒ¥Xi÷n,w>•‡xÆKÖQj ¢ b1ùð&!"c|AÄÌ~bf'ÏG\+Î , 2Tˆ`¥ž²Cë DPB31â}Dˆcψ™ÑÔı2ØúØ÷ô>÷~ߟ†%ÊþþKá÷¼?íîÛva:'g3È•=Û™vÌìg"¡"ñ®7`SÂÑÉZ+®¸ÜžÍ±Ù?eBLèHú2b¦~˜Ü“°÷É=ÕrVÉ€ ×ìx= „­€®µÍ†ٖ§›º –YÌ0ù J@&Šê„¹m®ò•ý¯w_CŽ8BÏ l4²Ö'°g³:–WV™*Õ¡³;W$Y+t¬WiÛ®·ÕõCÍ?g¬&²QZÜ~Žü'o{2›–Þ/Èo›>Ù™½rEÁFŽãŸ¡pȃ¢€)B–,zÛ12]494Õ‡-—ZÏ%&YL$R xf*¸7'K‚îAîcko)¹åNaļSšÑÒæõdT·b–„2Såꊪ G_Ùt…€( ‚Ïe¿šFzþz½BHü®*­ÄƒI0uhEv",›-ªù2÷"5‘G˜òŠöÿ‹çŒíM»)Îzý#ÏÛ·ŒÁd7¬Ñ\qŒ×þ6醿—Í# É'0HÀÃìt±žR@ä<ßîTjèÖ¦`g,ƲÌ×Q|âm°‚Ó‰p1>ÍXûÏÖê>‹H.Fx‹hÐtÞC¹¶k™AffÍ]¶Ö+Þ;Æ +ØT3'˜fsùYH,‘XmDàÝAXÖÓ¶6„æÅqÅÙm<•ñÉ6¦ž(”¡B@ åà ¬uiamÂwßàÚå‚”ÔöTHžívP`bm¤‹nÊăs~¦øö|ù¾í<)Æûnç¨h¹AÎbðëþ/‹ÂY̲ÆS#žÇãyÕé*r6hakœÆY(}VÎ*¥“‹”#ÞØg»RÇ/v£ˆä·[°]âìo)[ÇcêX%c2èÔ™›¶¼j-²åêê±õy&™«‹®ÆU†ØjÇé°b·î;Û2v+i¼¯¡í„U±—-{YÚñ{bp€ô4²Å_ jÇì+ ‹U”rö.Â\®Êé&'»m³9tÅÙ„’ѧl|˜üTDÜ Ä°ÀôtŒ `¥…$é÷2(2ˆ™[¸£÷yãŒ@ј$ ›“*5›I¾û•]ň°¶ÄŒ0œ2"«šzèªÌÉQÄ"F¼Q• Kuµî@µÛÒ'cˆ„ëO%(‡a¸K(!˜)Æ””Äx‰))™˜ó3?ïG^†ÇP›•ç/¥ræÈ%F²RCܽT²ŸY%¬|ˆÌŒDÈÄþ::*rÒ-Wr=§êm}õáð÷–49ö’ _oÙ÷]<|?±Â½‹ °1¶ëMSŒêvVà÷°‡D0Ýì*1ù°äTl32Q”zµŸaŸ§VÉÊvg¬âj{ éßpù01ZìÙÜ6­‹Âêél¶–n«$¤Ä8ÀLb›ÔýH¸÷Çzf“p´–ñÛ.?‹úD\²î-M³_25ÁÙE*¶‰oSÁ‹Q¼|Ì«›§Ù^~×iu¶-{¸“¢Rî¯^Ñöž ¡˜°Ú.Âf4h®ï˜mÅ™”ëêVÓ;ι[W^Åܼ1uÅeMul¹ü×EWUdT.¡Ô’êôÅ&¼Š†v ‘eRÆám„ó멟/§¼š Èœ¨ ¤Ð¥ºvä„“m„€{‰}ùóe¯ZŸŸ´}ËöT—Њ«$Ŧ# €?223>Ç ˆ —Ì:^˜µ"×6 5-£”Fo níoÝ'œ¥_%VÂAù&,«ænÔ¸fã-^J]öWeLNÙo`Û#8«XýŠ®.mž:Ìæi_Æ}aaî¿*ºVª¢ˆ.a.´” K[-P9`³ºYA19@]"ƒz³"®ù\,Dì ä’^²ø "'åõ"A!†nKG"-”®­B̤‚ÒI õ mÞqiò{™- SKO,®–¢ž®Â9•%–hœÅ*´r IgŽE*ÀÙè|]¼ð¿p5k©Õ°ØƒØ2ZY}‘ÕÓ¶ð*TjXÇUxýoÔÁÍŠ ºóºï7\v\Óoæ³.4xßrq(¤ß‚̦ZF-eú‘R²À üËßï ‰‡ox€$öÿ2k:ÛÑc1š©V¸‚—"`Þ 3lZêm© c.ù~Ú"!‘2=~¸Sع+„6=‡ƒµWâŠ9;lÍ’­Æaõl¼Òie…·¨\x1(±’·‰Ckß³[LS?vTkÚ\ø‹'žN_)IÝQ^IMƒÈV8ÕÝ(5^ [qmÿ*Ï¢ªª®v§Ify*ê9Å1'™7&žHÔÙXª Q°ÖÂûo;)µe!mÀ °å€{3úˆ0„GóX§úÄD~fgñù™ÿz:L±Ìé¹ n:þj¹¯3vKyeÑ+K¤;5ÖëáL žaTmb¸œB¨&²bNN«ÞdgÃnd[XX5ÆÚG^^ÿ»®SÎìˆî*ÆÇ}Žž£VÇs·vßÖ­þ®s3ź”LÌÂù1¸™ó­ìSþ DÄL@øüÄOÿ#­{þ Ç5¾Ì­!¬M©Àóo›*2[çÿaÀãùpL2©˜þKþ$QþÄzÁþ®žÍ~†l%ÜKíq-'ú±ósŽÞ7\JŠ1[†ÓŒ“‘Œ~Á–§'”w¼ŒV¶¿ÞÅíãÇ·±yóæ|óg97’ŒÚÙÈ;»÷`úמ0õœ}˜‘õ+ó³ \Lxñ0°óÿðtt/޽OÒ0w†½µ?QÆT{nÕc Z­›`}V0l2³³9¡– Ýæ“²K7™öi ™yŸ%>z­ÝذÓß¾[I{“fæ/—hÛ°¦šßj•>®ú”ì¸ úµ]rÛ«WiÛVX {dŽŽ–¾ õüÕÔÅK$öµù*ï§lH¼]jçŒÇ×I™Ñ¨Fd¥‘uÉŒÉLÌÌÌÌÌÌÌÏžŽŽŽ·Sñ?çÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/garfield.gif0000644000175000017500000000230412233761321024767 0ustar mathieumathieuGIF89a ÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ, þ± (€A’0 ¡Ã ÌAèDžˆF$1Qa348qâ%ŠØ,ª(iPäH$.©ˆ‰’D'*N¶t)£ŠNNNDÂ1&Е(yÚì4“DщNÞäI0¦ @̹ŠÕÉIª=O^ÂÔ(V±IÂÌssÅ §n¸…ûèÂŒ —®`ÅÊ-ß½}Ã<é´"[¦8Y]»ö—àŬ@JýZ5«¨ªðí›éS&À¬ª Ráçê]ˆ01SAÅZ…k+>­x™õꜧ± Æ,m4ªÞ¬Q9 þÛwo©5þvMÜ5ÓÚ­U·;pi§áÑÛþœ9k®¹¢fÝ (ùóæ·ƒßY€Šóðã£ßž»}'ùøÏÿ F¹òÍ¥NäÇU'ƒ¥UÝBí‡b H]’ßv:€„HN5V€juPZNÙD˜‚V8Vˆ)•EØXïMÌO+åaN™d“‹¸A5#BNa… .–——ÝÈL÷yS’B†å•WFùâ%ORSI ‘¥å–eaÙP{…)æ˜!;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/sexy.gif0000644000175000017500000000216112233761321024203 0ustar mathieumathieuGIF89a%%÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ,%%þ± H° Áƒ*\Ȱ¡Ã‡#* ‚ €‹ªP‘*Õ S5KµqEÆ›M™j”Èi+GšÌ ÕJ’s¾\ ’æÈ¢Œ 5&j£Íi$%Rå$(³§P‰:yé"G’¢ j…Z´™×™UxUaŒÙЧgðÚ lëdå:—®H· U¸T‘•Y©=¥žþ l¶hÕ°”õ["®Š„ÍrÄ«Pï(Å‚7ÒUYîá·£./6»X¨VÏ”'bE»Õ,ZéÂ¥;ZòД±5Ž¥Û÷iÑ¡k›U|˜’/3QM…"ÏÚu¬U•©’ÍùÎÏ ÅÂÄ)ª»w£0·Oç6¨æOŠ%±­8úbM¶Í.„;áÅûÞ?É¿¿ÿƒøa³Ÿ€æG R%˜ŸF F18àI *˜ Rû Xa€ÿuèᇠz;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/elmerfudd.gif0000644000175000017500000000230312233761321025160 0ustar mathieumathieuGIF89a ÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ, þITH°`Ø*\Èp¡@ƒI4œØð!Ä‚'’ÈXñ"DŽ 7©P¤GŒR>TqP£E*XV‘é$fËŠr^”9³Š“*¤ž‘zB2¤œœm”IjÕ³§¥H©À‰´ Òž@…>Õ*•!‰£U±.”TЧf…‚ü –Ğϒ´5Ož§+‚=êÖjV´[«-¹7'ÏŸg+^Å‘íQfßþUL™1a°O¶:¥üìîÖ'A-}œ˜sç¥Ð>Y±ŠTc°HLk~²ÊsžU@ó^–ãD6ZVÐl³ÊãZïÑØ¾õX³&œ¸îÑr£Í“:°rVUž:±r·+ôÞhI¡•ZQZ++¬ŸÕ”;5¤“èቓp"×î ÛN¨£mL¹Ù<*¼—Y`›mEŠ]ψVÒYòE_`BèYq AÖZŽ=x bÓ¥æ]EäIµWf€X›]Ä ÕEØlT؃ϔrÛpf­P”F︕ŒÔI…‹m„Äq¥™åÄFYAHB†–9©d‹~Í„bL.æ4%6ì4Ò‘1©ÀH;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/bart.gif0000644000175000017500000000216212233761321024144 0ustar mathieumathieuGIF89a%%÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ,%%þ± H° Áƒ$!Æ #" bTE$JÜ(Ĩf ›¥EDŽ I¤ #6“(ªdÒâÇ1 ª IӦƜ ?ò¤9#œgj&ÊK—’D ÀcÔ¥*b°òjO¤I@õÊ2+J£ºŠL¥–çÔ¤*VÈ5J®]¡4Ín\Áªo_¹~ûVÁ 2X™¬®Y¹v_ÆMšòcÅ‘W´Õ¶rãË?«5|6°cÏ™GNiphÆ’k®–™–í¨*¨Y i3§G¶¼qÿ]!Ô'PÈ¡ÖËÒIÚ·+gÙ–·sèa {½8¡R²Í*P–Œi|3‹@Jg˾èXÒéfœŸœ0üøÑVß X¦.õ7Ðw“ ØÐ~¼q†_EnÉ…Å ÝmDÂĵWX‚a„ måᇠ~XP@;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/devil.gif0000644000175000017500000000322512233761321024320 0ustar mathieumathieuGIF89a@@÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ,@@þ± H° @+*\Ȱ¡C BŒH±âÀ'ZÜØ°Ç z´ ¤II6–<2¥EŒ,A¶¡c ”˜“´Ù¸çÆ'6Fò¹ ¤'m*Mé&ÑŠØ l©jU6#BrÙP£ÏªØ D‚D«lÙªm`b‹q%Q6À5K—VU¤k¥:Të3‰\²uë´«WœOHL7*°]Ÿ $Ì8pTȽòõIµ²çÂݲ!y­çÏY ¨zàá@OWÖ+‘àjnO&Y\ù2]Ú¬5¶˜ÛdçÏ”ÍBšc[- Í8çVž¨ÔÞ´zTk:Ë'l<þ_ tíZ ëÊi«†iÅ éà'¡PÅnö’žòåK]2Ë.›$íÁ$Cw®ÝÖ’UÊu~åéXUv±ÑÞDíÙf HVœ‡`x˱Â`y¬ÌqÖYV8á@WTxy×°¢ÇuþYáá‡×Àå›]OL¸‚ÎYqK3‚¨x$`!^EVU;¶w"6ª]øÑ +°b +À‘rUýµT”N6IàIZrÙ¢ulP%ƒ¬b# 9iç™'eyE+×XgÕTèuKrUЀN>'Ù—üiÕe’¨¥a³›£f*iîUŠM þ jm:Ð¥9¾†Ó|ö—iTþsmEÐne±ñ„ª1Aø ‚Åê”@ÒA²¿úž¦ôuWA¾Åg™²Ä_¼eªÝ@FÙh#$ņtœrVMûà´¶&fUrÅ*%GF)Kâ’¥BzTAò=úX¸ërô ¶û*¹ï7]á¨ýÒ°ð>Qjz66¦$‰%Ü{Õf2‘ ­ ôEÊØbÜ~j1©ùnÂÒ&Û«ÆVáUò²1QõWÞý‡Í¬BÒÆ¯i=0Q¬J×µñ$Q:ý%^ A‘#ž’…wÚr%Ñ$®1ù<]CP褧 {ÆC)µ°u¥®~öµB%°§¢d»Y-X·=ᥥùÇ«` )=uÝ’-9*vc;ǯˆ†lR»v9ª\·,$&=®M4v¼ÚœÐ£Ú‘Y­wví¬Kž%Õ&ÅÚuYŸ4Òf²}o¨~ õAcû…ÅJº ëÙ é¼w¢8Õ+j«V¥îÐÐ,±Ú“N¯Zî©C'0DÇ£^Z@;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/duck.gif0000644000175000017500000000213612233761321024143 0ustar mathieumathieuGIF89a ÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ, þ± H° 6 *\X!+0œØ¢Åˆ)>¼hQbF†9ZñøQáC‡(G–4 `…ËX­H¸²áËVV° 4³¦Í›1]’¬‰²hÑŒF)]Êt) £JJõ U„{²jÝsâéÕ¯X°î¡×¯SÇ>"Ëv퉫VÓX ì\¶SR{ +¾o¥êpÍʵk;ýf»x,€˜…ûJ$|¸re²ŽÕÅúÖ²e‡‡g:\ÑW+RNp%,ºå⿞³:í”1ÔQŠÝ7nѾ·ƒÛnŒ°`…+wèSàiåÇu¸œ¹Ïçijߖ®Ñö×í‹<Šž,{°–[M3ëÌ R `¾)ú }—{D¸@ þ-åw_K÷ U$˜ _6hàVEAØ`@;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/evil.jpg0000644000175000017500000000621712233761321024173 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ ÿÄ+!"12#AQ bÿÄÿÄ; !"1Q2A46aqrt±³´#$357BCbsuÂÿÚ ?ØÞµÜÚxlžajD×or”­X*“HÑGóÏ$o.…¹…¹<(ºé÷v2qP¿;VÓðYd8Cö H„|­ˆŸË,.QH.¼ÃÜæ2Ìź7t5Vk+”§§4í}4†<ÞZÜÖo_ïÉ%˜Ê òÓöe ŒÎÅBþSïÇC^Õ\m Uã9˜VÈHò<’Þì'Ë,’3R¿ddðÄ‚Aóã~ÐþQ+v“\³¢Í5‰ôÙmK\ÅNGŠ´ê&x£6¤É–hCâV§ˆí…V—{!תhtšjŠb©ãpx‹ ;Ë…–@JçÂFÑ…O}÷p~8i¨uˆÓÉÊx×qÚ¥«44Æ6æX±5ë²ì”Øe’5ä’OÝߪæ¯ÿ­ß"±š•iîi,®ÖEa¹€³Ž»õž A’±#­¨§(ð*p®‘·ØÑ¼Qôò o§Õw!"½fÉZÆÛJñ~ÀXÿkÆûHèépÐ?W9ÁÉ–pNvœàH\ç ¯—^¤KB¬TS©€p?UªzëË>£Þ|üý4EÏÓ­%Ñ0ýd&`Â&BÈÏÄò;}yC’œžâXzçVíoCž¢ Y·57=O!¨{æÇTò0gðÈð•`ñÊ¥Ô„iª³À$ò8è÷i*iTj¥½­C©«óViW.DÙŒ*î9ÃÇ1,Š €‰G-#¥Þ“w'UÄ”Œj]¶œ(]ØapN@ÏCž"¹þEn&àÉ& DÖ¹¡»9nܵcê˜A/Ëãv®ñÉøØ3ÖíäƒéfÕÿñ;»¨rú§~³V¬êü¯ðEþ¹"C13…{¶e±X¶Ñ¢¢<¡œ+¿ ¢F:9]q·»‹/ RIJ¼­- aôî’9>|Ò4…YƒðUH÷ÂûéqÛÿ•ùîÕúÜáèé½…Ñù«Oo/Z ýù,cJ8¹ßÄï]_¸J«HbNÞâWª_œl÷Zw-]ÔïÜi ŠªC,U£ÂÏ;¬²í%²%’Rr›YÐŽ/Eý0£Z 5’>t¬Ã3`¬{Ö7ؾÄa°ö˜ö—½Àø ´{;ñÿwõšÊêWÕq`rGª3VdúØÖ¼m5<=*•y€‰¤fŠI£Z`Ñ©á(¨ˆÿµ6ônŽŸÒÕ°š›Ø;3ZóT]É4zv=3…‚(E9k ÆFDŸSÕ²›fŠ‘–Œè×äŽK\Õøçêb2Ï›Ì×âa^9Zå Ö«EZ( V Í$¥e„ $È$u|CÚ­O¶¸ýe®õµÂË©tÑ«ŒÆH¢´ñÅI<¶²=Á˜Ê8íPHôýœpx»1kPÖõ‰é6•n7“LÞ™£j†»Ç“!eF,0Îç{"¼Ñvƒþ]M* ¸Í¡j^듞͖Rp˜þ’ÀI˜ãñÁͲ;š\tzi.GBG¤—$EòZJ¬`[2}¿¼ë•¿úsÑו·´ö¬º¢{2–”£Ò1”! H<•…>¹õÑÖ•¿³«á|8ؽ1޶O—_¯_EÌX={ÝŽ¸=Zlÿ/ÉçåóôõáÚÃ]ÃfR¦J­•› ‘XUK‘ŒjÊ·µÄ»8!€ãí®“YnN?KcmImc‚¥ŽÑJÓHV³H¦$S+wð2¥Iz¯Ž»½- AWHê[«fòŵ’¿‘KʰÆLáä&I ?!„hˆÄz~®èZZ®´“%J–ã·_È•æe²Í+1%b°±Š&@V9912òËz9]KIÚhc³BçÆxŽjèä3G .+¹+Ê”òd¯|;œH –µE´‹f¾¢Ù cf é¸ay£Ä1ÑÂpr0ïΚÜí­Ô7[Vê Zw $ÓY«VÞ¤ÈD–;&µ[ÜxÝÒ>Iõé½~[Šñùé¡¶»Net>êm áãMI—»¥ŸHeÒþ>äV†í<…ÊõdjôåKP:ºDÞÚ ç‰ tÂ|•»¹ûpH¶s žÅ=¹Ä·,â«g°ÒQ‡”šެNõ䕎E!e…‹´€Ò=ƒÆéùÖ1ÔÛí«vû+ª³´gÕZKïwnòo8c<Â…Îlá¬ñ$­‘ާ'xÌmüˆç ÌúÔ Ugk©v%îòÃ:Of9\£ÅH™YÄŠ• ZÍ ’m2Ød¦Cõ!§–ð¶±ÔzϽ–D‘–<Œ‰QNåÇ™`Xdäg¥Šü‹u·ƒEiœ¶àe£›Cáw^zs\Ÿ-o,sã–¼Œ‘¤uë<;ašB…H G¦×t5,U´Ä‰IçŠjF4™‹‚÷J‚¬Ò*Hô}ú“Áëëé]1_lvëOé\GcE†ÄW©•Uc6!†c I°îŸs+—^ÖžGö`=Òͼ¯Çy6A,æ»Ë#X²W¶y7˜!Bã°¨'žÒO[Åj») È±E ¹0ª×V{ÜçêR"C†ižP¯R:ñÄËqÅneŒŸ<òjº„{À모ÕV ‘¨U_iœ´ŒN^I°¹ÀƒZÄ…˜øÝy$öø­ß¯zãñÇõÑ×¾ÑÙ AñÉä‰ëðO>Èûÿû!®0x20^r6g>#ƒsÔûúðÄ.ž ýßùþß—§üôˆûÈøä‰<Ÿgò³ÿz:::]ØO¢Ÿd|6¯ù‡ÙÇÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/marge.gif0000644000175000017500000000215712233761321024313 0ustar mathieumathieuGIF89a ÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ, þ±   ÁƒÈP ‰#Jœ8QÀ†RÜH1Ɔ8Š„(€ÄG‡#GZ<‰McÊYb ¹Q@oÚ$iò$ œ¬¥€ŠQFGÝÐóä͉I›5éJ™3% êdÔ £C½Ä €¢ ©OX]»Æj… Vmÿ4ýè’äÑjײ]±–• ¬3ð§¨^½x­°b ˜&Ä£o­èm —Õ\ŸÜÍ»ìe§@£ŽJËöɨfR?;à4j©n‡¾&Jâ¯LF_£výZÅÑÔ·!¶åd÷ïÙ§ic}àxQßЙ’PýQ'‰Þ¼©R¿]P÷lÛM_÷ÞÌ6`–㽇O‚÷ëéçéBªí¾ 6ë}’€4òQÆña4Ý~¨À_QøÈlDù§œ‚EÞnù}tT}³URA$0¥ÐE';tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/einstein.jpg0000644000175000017500000000721512233761321025051 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ   ÿÄ1  !"1A %3Raq’ÑðÿÄÿÄ< !1Aa"Q‘#4Rq25sÁÂÑð$3Tbrt’¡±³ÿÚ ?M¹V1çñŸÇóÎqãóþÿŸ?ÓÏÿyׯqŒãùgqÿõªÎoÆ]øçøšCjR8Îqò^ß±“E7`H•kPåÿU³Vª >ùû9ë<,ÌlÉâ7­€n]G— MmSMï†)’$IŽbSaÁym –[QªÝêjuáßi„¥t‡Kö6Þæú¦ÎÖ;“*½ËÇ;uvÈÿZò{É-®éù¨$ ¦ }ÐROÖÂSîVÒ›8eªœ …Æí]]±®_#ûsûÏü¹Ðö­s±xû‘z›Põ/:ô)’æjÝn©ÐhÔ-_nÖ®C3d¢"‹TG¬`® {[².B4»B¥7'Ôlöä}Ù\ÞZ±í·¥W‡AÑV~AÞzŠÀ"Hkl†¢™Y¬Ö cQŒ*¡*aM™ÌòüÀè£ÂXQ‚Ù6ÕîßpêºÞŽã ­ã†-Zïm(ýÅêàZ^ì™w×86áu—mÙÖyW´×Ë\­j$ˆÕ Õã%dÜ®E  “Ù…–”ª8ªQtRMÕ$½Ó°åy†]=(êñ¥ÉH€ªTT^ܼwël>YµË<™’ä¤%JdJúd?ØÃÏ¥×Væy„ †]w ù¸Òd>–Ö¬¡/;„áj=v÷l¦0ë˜o[^ŸF^óko ò0¬á.³÷7˜ò~“˜ð¶þá†øe?U–œù!'¢t|Ïãtnp¼9ŸÜ¯>§e^Þ¶=ίgL2sZò=dä çn –Òv}àú#HXêÖ¾‹9¥„Œ!™lµƒ†JÆvC,Ä#–%7œ·„Z7B{PðG3Âû[MT¯7r~ÙÝ·…C½X†™T9ˆþ²áZì‚sÓõ\$Xæ`9-÷^€Ó,e”¦XóÖˆ¥ó&ÖÚ‹^,*£_>H¸fÎJ0†Z+b/öM1‚“ÏOvi)D&aù3W5Éqo­Jì{Wgë=+­®›waD×´RÍM4ì4f‰n[“X ”)TÕê⫨kà~¤Žm—Xwéf#›f9”ìøƒâ"«h!]…hÔÔoÞ'™&ûXPcé,£†2Ü’NüÏdÚ¡$VVE ¨ip@½¬6¹­0§ýëFÔ¨zXt=”8{¸ÓD/t«~²pj†×ÌÖ·†¸;ÎÂM=œ²¸@UH¸šq­”¬Õl!ÔtOÚ–EùuˆÑ½CVâÚÇ6Y9¯¢Îì²/‘wZrIŠC•Ýc@“¯ìíZƒ?¬6¹¹gë‚PTck 9°Â ã’ãÕW‡’1Ë%u^×ìçÎ(÷P{~l=íÅwíŠÿWÙúîéÔ´\Ü6Ø3£féZðtœ^Y£¿Ü«–'^p•0è!dMæOeÍcÐÙ¿_ºÖ—½9òû\5¯TÑ´úÞ¥!kZ*£C/³ÏT ‰p»Q0¨¶—Âa™é?^ƒ!Üe¸ËG¦‰Xñä$Ö&a ?hʲºÁ)Pkp sñRT‹¡fP`çyêæy4ä(N…ÉÁª)(àÐ*€55…”܃SŽ;_{˜ô·¸nÕ×ÂÀßô÷s }ŽÍÒÚxîø§ß9 ,øíŒRÙÅNÇèóìu0Èp2rÐgâN&ôø’£Í%s3÷ƒ4ï¶FÆê yiÃÌóµÛBí}]´é“Æ™4obAè:=D-¦¦l+(gPlì»)°@,NBgý$!Ð…Iz'¨­Áþßz7Mof¸‹±¹›·Ó$züßÔrô,Ä›þœd–*Ä5ÞÙ²¬I*S` 2vCÌ5:DÖ²1L8—’Ó˜eÞßZpÿT\6'Míë *»Äõ]Ÿ¶5Gñ¾¸X¨à*¥¦ö1Ýyyl½b?,k[ÜQÚLíƒL•j¯Jp rc­båD(<†ýyl¬¦a<“rŽ ¼»†Ñh§ÞUÜQ€¿€µ…pâ<Æ+€’óÐDX³*;¾!– ‡tÔ°½ërjÝ×ûM[v‰r¶Ò/š U«Í6Ìz«s®HÆæŽø ]x¬± G…efŠ1dˆËQš[ C ¡¤¡8=WÊ×¢ûw{Úl»Â3GåÆÜ§Ìmhò¬!+$ÏÉcb“ojAÂR²ô’lÂ\':Cο.jŸ}×qÅ+'¦ÿÒ½æóø~ËÎséS< ­áóm·_ÍêÃuÿ¿¿~ÓB«lÞiÕ=!CÀ>ÑSvù].E¡1]¡ùdìq1cÇié!ÇT¯§‡ŸÆ&:òòÚ½µ¶¶ã÷nYëïPÒô½œt§CêQ²yΧÑr/¼¶,HŸZ¬ÆÙ9l6r²f‡¯ÒÓ)¶±R­¢Éo­$eמiMfµ*ÆS„eXÊpæ|#*ÇŒ/8Îqœ#9ü+>qœxÇŸÎ3éêJq·Oî./µì7µëÕÃuý£b¥ÞŽQ,Ÿ©qóÚÊ{&êÄ…Y0QÈï=4ü‰†ðܾ„˜ÂþJmü²"Q!*ðæUUYí¨†îê, w5$SzÒ‚ ‰ÅyüÔ±’yÇd#B ˆZ( U”5©°=qèæ?`ÕJ¼Äsà R­,V, BüÌ#!ˆ8´Æ[RyìÉÃo©§Q!ÖÔ¶ÒâT¼g#uhq~ÖûÕÝͪ…HànˆÚ%âôYP¢ §sõ¼e¥j]›«‰ kÕoµ¯h ®vPÈ©rMeÙk(¦Î,1ò•Æœ÷ÃÝ[3y\¹ø7ëiÒúªÉ4ò6 ß08›}î(ió‚±Ç3K˜háÄ#1>*Ü”T˜Í×H4ÌRn¾Ô«énÞÛÈ?‰:“ÚÛ²®—mƒW•V9Z£Ü©Š$Lc”»8}ÚÜÄW“6€Â‰Œ1Q‰ƒY• +s’Þ~o'Iñ!9-èñ›C¨: …üÂÛíÖØÃ‡!gÙtúOÉɰh}±¨p:3‚ 4%n-ZíawC—ȤG¿™+ÊÄ7aìܤXL²i“ »!¶ 0&Ù%‰sb˜:[òe-¼4ª¤síê›ËÚ»»}·5WvF¾qµ—X^N è05{˯0]™ÝBÂEÁ*Öz¶È§W ”H`Âphµº8‡KIn|ÁÜ£éžSÛ“aÝWY¸êZ‰:#«kvhÅ-3]3bYA”“Úv•`Ú0Ój…¤O!månq(5i•f 3‚àQgÜÌÒ6jëÚß’(VÑôôøÒ½·íÕøò¦ŽÚùßDgîÚ²·³ñC@”л+à^~vPÇÅî¼ÁÓ‰1bbp´¬g¬.ÌT¨ îKjrEoñ–s¬©‡;,ž±˜TïPZæ„4›ÌÔœ¯‹ûœÒhTŠec•¥ÙkU…j±^±Ä¤¹*-€Ð… 7K³Ôìˆå`D=—ÝV\y¹ qyÊ•œú=?ÉZØ‚¥IS–«BœËïey„û)‡•åÅeYˆœ©YLl«ÎXOÉ^øcÎ|yôz§ü’–ýº/ö¿NOøð8jðóüø,W=÷\a©«eŲ¼—œ©¥©µg)BðœåHÎ3œãÆ1œçÎ<~=p”ç,³-k•œ²Îs™ ËùÎr„+9Î]ʼç9üç9üç?Ÿçèôz7ë'>¯îŒk#ícøÝÆ*êÙÑY4!÷…vqÑ%†º¸$…»ðR> éÑTÔ¨N|T¤üã:Ò¾*Î<øÎqê÷e±›à½*lÍ€Ùs(§½„—&V|òiÂJZ0™òßvZp…¥*N0î>*NÆ3èôz[Ì=®ÖAÿ¤¨¥Î¢r®m«¿V£ìºCŒcX'Ìaª¾ 0¬…ƒ•`¸toÛÚ²ªÈª×ü¹Ù§3aÕ`r.EQ qª°%_¡”´&©®©D:•űLTšNª1Qf6nÅJ7™ ûÂÎÅínòêÛ'•üÌ!v1ç>V¢ké0úéKïæÍâ©déÌ¡¤º¡Óv‰È°!®Ë ™+b¶‘ÃÁïŽ<3æý5ý?ô¯“Tq®âç&úò–¨¹B×ån¾(bRV®k˜ýó}L‡¯“{_›’ÄwÄæ‘m‡þÞZqŒÜ¤ià6Û…ûC‰yû”éß4}œ«ÞPr®·t=BÙ–dFÛV„¾Ò63°[ž°CÇ™ýÙ0ޤ{jî8Oê,ò_W­Mˆ„ì½{÷.ìúœš¾n›öEµÕ;‹†Î ×Q7ƒ¢¡©•³“6°Ù<¿aï?TP퇴:F0N½†3ÒFrTU!xDchòå>\E|tUG/-AÕlô5Å:¶É]®iØÙXºçT¬±±:Ï]ëy‹—:çY™Rµ;Öôõ™ &ÆÄEg wª¶Ã$DBuˆ—‹Íÿ"ê—T¡›æœ·:ÀÕ°¶ËEä-&{#Ê×Îâ/ârwn]ÌÓ+6q‰uûPɦìw€2µCu˜ë&K RÐVôÈ}õ›‹ÚÑæ4EËnš±hˆtƒñ"¶½%°ÜPuuXÀAnÙ%r%ÁQ-”ÿª[@®Ÿ·Kê5Ýt╃%ñ;£.¬Zç¾Zò¿Z@IÓ«X¼ûЭù!„š°w.7#Ì(Y¨&5Tî6”Ø‘)¶LV­º(IÀƒD’¤ù¼|ÓçwФŒËßV­­ëž`=¬[êüzþß³§ÏÒ[GDJ)8x`LqCnöQñAÐð®vbÁ/ë¸A†ˆ>rÚ‚˜²À´8««yÜm¨'Ñ‘â¥1ì€S㶺pZN‡®›1j³CF{²göìþžº¥†éê–6ùÓÈapO‘©wš,YݪÚ8ÔQBˆÆ9y!¶–NõŒX·Tåb§šÁ‘Ð_­Èbs7"ý *Š$ž®¶!g¹[o¨èŠŒ6Á×C€NXiÊänZæne×2ÇÂ,>ÌfQ ¶R“¼±¦×FîÓtø\Æ]l tí…«äÍ?"mŽ9Á©µ“‹³L2OúCWÙ ÅjžÏçaŽuMÞµ€ÄIˆY\î' x² Т2…4:$i;NA«Ìyî}£ë–¬ÔȮ휥ò鯋!-<ÃLf]HŽ´Ô[Ž]hNåÁÓóeŒ.'”íUË*ºj›+§Lb!—H¢5F@vô­ˆ?¬À‰^°æOVcu~­}}ãKF¹€Y€ÖèA,XTVt›îUè’š —a Ùãø­o$‹½tƒB¤áÜnD| •´Ý`æŠÝ»åÏŽµiδ¥I\WõL"¶ˆ†VP˜¥{`â>!ë†QˆX&° x»-—v³aCZ"«•¶Ê«ï¦Ê©œï¾sðøxtËíÝîGwÜz}ýÜ [ãì×ïowÞ÷O¿»e þøw­:íâÃUU™ ogGf¼qaJEL‹néÓøõ'o¢eYù’Qï’uº¼Qb_³g]èíž”~•^Go¿WyöyáBr;/¢·'JÚ•‹#Bë[ÍŸ!™޽å6ðeD¡º3u¤ Ñ´ƒKåÄ".ÿh‘øø;Ëx¬AXf$haÝlÍ{2[sü?šËcURKd·Wù4q«ç/\슸oû·Ý&Iw ÀâÀ‹yKè±w@سŠ;°«µÉ)’Tuñ™y:‚KQ—‘FæqªO p¤Ð4–ÄpÈvò/äÀž7{réÿaæùÆ.-åÄ£=|+VÅÛX¹·ìCd1j2ÛVgç-Z”¹†l™¿åS§ðö:/d­b)͈—ä)2Sf¼„I¦Rè›ïp­EgCŠë68„ÄHxÉ×WM{ ÂT~oÞ›ñµS@™7h–‰Él¸ñÙL­Ë*â?¦E?Œ•±’Ã1¥0ítû¢­Ôß;¾Y„êOYíî7ç÷ˆœð…‚Ú(`ÄpDXŒ¯¨x÷H¬²C'[ *,1:¦çºg"hbPâŒcu±×Ìš ؉ÌÇìPšh¶¾q¿Br½]Ò¬rlUÕ‘²,=Dç1gã«Z„t¡CQëj¡"5–ˆ7“çPÒÉàØp”Iã°¢ƒÚb¯ù@èJ¡kKf*áâÝív¤ùý”å”&dDÂ^rµdÜÓ{6‰=)`…8Ôš’wC÷r¶Ò× d<‘ÙÖšpƒ•æÞY nJrW×j®þf²X Û¤/AE€²¿‘]y„Ê„b$`çMæþг8Œ‰âpÂì†2)SŸ ¸T3 ‡ÈjÞ*äe2©I÷:IÐé#‘(ybÕCv#Y)^ûôM9Éá‚§šq?r×h½9j‚@àǃé{7®Ô£â$JÛÄ Œ¬\À•~FâBVyޱ¹”¸ÞcPšÖ—Duÿ Ññxë¸åt´Û‡®ÈÝj-„e®\¨ VÈôÒ@L³¥UÝgn„(ø‰—«<ÿgäx¼ƒç©Üƒz絘eI=c1€•q½¢[}HŸ„ª‡äœí+ѲR-%¯#Ûîr95wýzeâ°Kïd›$’ÖvjOt>¶©¶»éü·Û)hžTûôI?½ST›7OE?–Vt¢úç:ë¶R[-ÒÕfû–# ‰ÀÔŠX|uOŸ^ÿÖ“Ä c¿õ§wëÙ<4ÒóG¦ãžXúʬ"Ë*¢ªª jŠª¦ûn¢ŠnÍ·QMöÎvß}öÎvß}³¶Û9Îsœç9ø|>7³òøn<ÞÏËãÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/rei2.jpg0000644000175000017500000000777212233761321024104 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ  ÿÄ+ !# "$1aÿÄ ÿÄ5!1"6A#2qt±²%7Qau³rvÿÚ ?B:C®3êÀôµòÊÆÝ{·¯{–“š —Šøñã>’²x9n«€Á÷½/ª?Ùr0BÌš&-‰VŠEØó«¨6³Ãåì”–¹òüé!,B~7Û±á1¶lqˆlŽž:=€Žc#%\Ȟœýc%Çæ"€À¼y+¤Òòbt+¸ÅyE\v‚¤’op²±ÅuÙå­ˆ¹ÍpU,Ïò–Ø#Ã!ÅM¨ªŠ¬?Éôõ¢nW°ÁùÁàgEæ8Sl§š5¨«S¡µZù¬HЄs‰·Œ\X:>oG˜+ì˜@ëi‡2S Hûb‡ÖPæjdG™8nÙµôy{<ÑØÐ T1ÈP±_t°”Ÿâ‚›Odð‡Œv)¶:ˆi#’V9¢Üý°Fc<2C yUyò èê­ïÖCOÓ3-ñÿ§óÀN¹¦ÎÒÙXk™RÛR=Æh¼‡°‹ ñÕ9!ŽIiy¨0ÞDÌGd¬…U„4,›¹¬ïF±Øw&=½oFúhù©Í©"ô¹°×, e5„}ÃÏÌWïRÅ.i\,V„‡F†Ä¦/»ÞíþfúròÎ݈bÓQÍr¶))²X“šïé±ÛÚ"a6Ò¾;ÍVp¹Õ‹ B苜v˜ñ†sÖþ}Ü-zÓ׈Õi+Ö÷Ç.÷IƒÛÚ²`ÆuÏ$è8=¿u³]ò YEÖ³C„™eCNƬ“<ÐÔÕf¼øœXYZz°Ïgtt­mž1*– î!@Ä)<”zõËNG5MKмkK55ÍVˆ:ÄÒ#K/ ¬QÞ96÷‚–Ù€%£`ª§=Øë;W€^Bø½®¼Î®ñhŠÎ±Å)ïO`¶š§)+n;´üSH˜ûX,1¶znq©*¤Ç6Â¥*Å2!Æž&ñ»†Ãœ¶±¹ËeÝ0uz,Šзµe2‹úû 묢$d*e§ªvg^3’?ã¼ïE”Ç£YžL/ëk°ú•X¾Õ̼xÑt#ƒä–|g°ÜOqœËŠîgrÿɶz»{Ñ6–Fçî@ËèóÖ áÄŒe8Ö)û³Ã™fÅÚ´Yt‡Ÿá¥²½ÍX]ölÎw«fd¢²Ì pÓ±ÅY6Žb«7sinon¨Ù-í-vÑ §žuÉÖÉXÂxc–žÔ“Ë :VúƒUÑ3E/(é»WkRƲ:ƒb¯—6Íö©$ÍT”•ÔþD™-Y¥iVµ%lˆúûF\¬ÂZ[l¶­f–ÚS ìõÃF7Yâuv‡›®ÑsŸ[.QKž¡§Øâ¯‰×TÓUÖjˆÞFHséo&’ïÿ,¥³ˆ§Á9_ùÄæI7û\ïG¬oCç¿U±E]¹œÜÖÚ¾6±ÎKÉeÓKŸÔŠÔƒAI&ŒzåƒA%U´e€û¸aµt |kð¾GÇi‰•fMAŠ *¬ˆB°Ù\#( ÈØˆ z7§Ét5µ< a}?• òŸøu½ToX·õ_Ÿ]þ{zÙYûïLÛò.ãÿ n¦ËšvX›8ïÅËØgEË’ý£ -(èTØA=WL{.:Õp’×Àd]kƺWBð¯ÊiñØdÄt;k›ì.ã˜bïÅØPÙÖÕPW•Zª‹Rëõ\êÒ:ú»¬6™r,u5’ñ°Š¼±˜Muð_œ;•yEÌ9’ð»û]´Bq}@pÍ ±´ËOK«ÐÐYg­ÐÈII)€'5lUÔ‘j®–c¢xb•E<ƒúM`»—šíó±:x9[¸õ]…Þ›™üæ½Õeêi@[Öí™Ðjf©&ôœým®€x²Hk£ yH•¦“7¥«ñz.ý¸¯R»‰ÍcmY‘eó,HlÊÎv““û­Þ0›/ ï¸w5‹½®ªâí ü½3¨qøÇ†»Ràqè Š$®#̰²’î$-ØsPêFðŽÝ€ñ†N‘Âtº¶éüaè—Ö;~+¢âÇ>}6£™ÔñšbÈrPâ‚]=;akRjç|óç‘—w–Ц­)±{^gi "²³žt_(:Ä ž2æ³W³\–E Áf_¦RÃ1µUËD0^)pÏä?Nðܬø6@è1°ïs:¸©Æ.Ãl3¬†ÐfË< Mó*{êHÒ–¼/–.9åü‚É%•¯o+ð —òqµˆ«cÑ…§|'ùŒüzªÃÛÁO»êk­bh²—V-‹«ß*“ðŸ÷º}Oã5¬¶+”]2 .Ó•Y ÕËâ.*+Õ±Êk‚Í©&BFå{u“ðC§3™ìK&%ÆH´.G%w?OÅåi¼’T¿/¸u°®RÔ²4HÜ[r£©å̾›IùAv–¹[¾ä¶¹² ºÕôú°·ZÌ…½üãXM2æSºl@G3ue€=cs£c`R|3TTYë¬]“ÝO#ïüãË=®'“ËÔl·Ü«¦t,õ…µõ:ÁiiÒr=£GÎdž‚¬/=,ДXwj`1ÖIQ0È¿§Ÿ%åróœehxÆ&b´`G2ÅZ±Ä:@4?iI‰°A(ØãdyƒA#ÃòŠ&£Ó£Ã|¯GÛyaÌâ¼éz[í'RÒi,öÛëÇê̲—gm¢.ž]Õ*­ÅS4Na°>4°IÓ}ÂUëqz¾¶+ Ra°¥¢Y+ÆñÙŠÇ Ì¨¡¤6$wU`I,mÇ~­ßÒ¬¶¤¹nöfkuë!XÙ–ZzþSÝÖ] ©_xÄ.›p Äí°Æ/GÅù–è{ÌÅ÷Š9Î…yœÙê(nwÕœ‡ªY×n-ª/¯±ØWÙ´;´Æ5Їƒ±‘ÐE#"aëDû^îT;-l4aÖ¾–-5ôU~ŠÌGº®;RÙ^ç %3äÎ!W÷9ðª¬nr¹ªªz™køŽÀ4^Âb` d»cD©ßo—§Ï½Ž>ŽÓxå”Y‡iTL»,£o0^Á¹ì˜‰¼£µõn³ÆãézHOâ´—ö3e5õ—ØÎeª>°;:«SÍŒú-]F½÷µã±!Ô‰IEwzÎÈ2«¬Ö»9B¨íüÒ—V °5ÕY0M¦ÂA•WÑ:ZÚG²FÈfIs㈛$ƒO ‘#UïÅÕš®”;UI‹²òZ›;§-ÎÕ˜”½O-j8îÏ‘UTH,·¹¶§£±:ÈG_Æ5äØjé.Ú²hGkÝáÇŸ3x¿ü"ï`}­¿é)l_K¤»Öá—xÖí-VÊJ³¦ ‚úª= U¤±Á—0Ka†³Š—D}Q Ú+@O¨&Zé Õy+¬Öè!¯²ºÅ$wjJG™`:sŽzǵv\VI#_g?(b)[Ðú—ž>Ôvç|FVwv¬-¤‹ø‹¬çcæym•î<Æ@v?ÜæƒžjöýuV"×»ã|‹L<mÅZ¹ù³¹ösXÁ+^Z4Ú½5¦ÈØ –7UÍUbÀ^[Œ ‘ámåÈ^\\V a¦Í·•ïaUr„Î(éÍù/{`þ®•\žë}•¨Ÿ?Š«},qtÜ?Æ%ÕM®®¨;6A4‹’ÒÚaôITkØÈ‚½ËYVÛöÜ#”—ŽtÐO ö%xÓ£ŸË9ÖG/W!¤‘kÔo$VÃøQm»/RÓ×Á$$ HÄþžçW`gR`ŠW› ˜[ÚÇ@’°ygŽdöîEï½x26Þ¨ÔŠŒ0¤B(ÂÃĦuŒi9¯3Äà“¹$–âÖ.ÄÙ’Ž¬¦yÞõü¯Ó<Ée–óyò,J{Ë<åÅxt ûº§è,별2X8PTj¢”xg°huêHà ébøG!ó¯âÇ<“à÷§Â5VúŒÞwõÇ'°Ñj-h8UuCK3Ñ?@ý]“iŽ}–ªÔxCyƒˆuÀµlÉS¹Ä[ZF´Ë|uxSû›éF§VÅ#]92¨Îö|ŽH[42Qˆ¯r*ŽÅ÷|kRO›ýÖ½_+à?zîøîõæÐü,ÏÓÓø×Nþ½1ï¼ÿ?°ÎYÚ˜?òÅ(‚lö<çñŸ»¢ñMÎæ´u*ÖÙèÁˆª²…øÜ¦°Õ¸¬5WiÖ9¢³5©I”Ô«Tù’2³nbR@NÅAì;ô"ñ±úOCç³Ù@’¼ñR¥Ñ‹·m‘ Fñ¢` ¦N,$¿_ãg™|>3KXW‹±Öèr™ÛÊøúh;lOIŒj€Ï9¯ƒ%¸dFÝfb¾ä>ª'9‚5Tõ0zÔkÉúgE©º\c7ZædT‚äšuÌ7A`Ú¿4“Í$³~©û’>i^÷üœéª®SÖ‹®&šª¯+$¨ ¸/±Ø¸ïèw~=gaÈVf,i&äîw®»îJžþï÷ÿïô#•–¶•VœM•M‘õv2m-ƒ¸Â6AåäqKÊH§|2G<ÑɤV=“JÇ5[#Ñ{‡%[\ÎÛõFæÌ¯ œèžiÕ,IÀ´XŠ"Ã=mŸÓP>U#J)L£ÒI&‚œ™tõ—o}°O€÷8…=„˜o…±â ý«Ñ?ñ~¢ÿ±[ÿ`ê‚ǺæâÏÇ{ج­l¬" Ò(CˆãŠ.1"R4ìX†dòÈØ#V1VDŒjµ­j§³QQAcŠ«ýª¨ˆª¿Úª{¿úU_ý§ÿúôz=#¾!|C«?ÉÕýïÖŒè/åöüÿD]t¿™öÓx£äµÍ9ÆU\Ãú ‚µ­&`lƒrgŽz8S…|Eä{ZôXeb£š×{û¢*e‡ÀV2>;çI±±Îíþ€WNÆ£fpÒóžBùGYˆõ‚WÏ3ä…]öÞé¥sš«#ÕOG£?²‡ÄV+7ïé\ö®ø^¿æ1¿¤qì¥mtù|ÜÓÓMAO,²Ê,I,’W ù$’GÆ®{ÞåW=îUsœªåUUUôz=žõ?‰ýzMSî/üWôÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/jeri.jpg0000644000175000017500000000634512233761321024167 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ  ÿÄ0 !1"#A$4BQaqÿÄÿÄ= !1AQa"4Bq‘Áð#35s¡²ÑáRb‚ƒ’±ÂÃñÿÚ ?V}.äN/\E V”›±‚BZF¸V#'“{6¿²­‰¸"#×cÖd•‘D‘{uœw‹g[ò¬D† \£ß/Sb·H‘£¡“qÍs+šÒ_,„a•"’Øå¸ §^…ô,š\mÞ^w)IÍûVÜÀÛFÎÎZ ‹Ã&}ØÎø¿ò“è‡$³ê@Oµý¨õw¾NWË×à}#éGæäe–XÃ`í×"–œÇO,%ö×lzW”%HI›ynfôr¸˜õBåd^‘Î PÀ•6·0Jž£ÔS5£¯}çžVf•~P%çòÜ7t]bá\·§½gêLárdj¡ÓΘånžd$¦ff¢ÞŠÚ¯.΃(»©±# ÐÛÕš€¡jÍ;¤Åk¹®ñ8ÖHzËy–ÒÜpy˥ȹË=0áYÆS®†EøþG*eç¸þˆP{ì\VÄj²òá‚…Å1ù¦>á<'¦]HégPºn~AÁ¹•v¹µ7pß_‰†ütšøäæ–åéljûú›Ú®›L%˜¨ÖöªcŒÒ‚JIjÇÊ•iR¥F»ì-b ‹únv劕Ù4¹Ðé%f€fde}ZI¹;ßkœOÿØ4¿ö#:Ä€f ,LMàјö›z}_ýðxìªòŒà¬¸XW4¬Ë6$É AÖ¥$ÍU½foxµ¦k{V|ÿV´yLž ÄtÛ|Úõy£÷mîöŸPIž¦ý|ÿhw~Ÿj¬ì”Ó!Áâ¥Ç=‘VƒVðËwHMÔZä©– óNY*š"½F¨b¢!b£¸}âÑäáö©ÒÌ–”äÙ\g7s]ÁF›oU–a¦o“kÚ‹E1Ï´˜–j¦éb-þÚƒ‚Ú“ÁÛ/)g˜ –”ÔÒÕÕúñZ±,ÝgHqKd™-@IÄV·®¬ÓÒ Öõ›²:šé/l45Ø{W#2£d.vµp.À¨ªë3[—?0ºO€^™bÉè°Õذ©k>+²T=#ÒÝ–¹d¥èä3Fć.AU";“ØnßÐ1¨¼ Tf1ðîU%-2Ì“RTRbÀĦ®f6ž“ñ&È4&MŒX¾kÏ”­NBÅ›Aì*Š>ÿ3r»;¡á¼7àtäáÏã|s•ê ¡hs3qÖ¥¾G¢2Ôª²Dôõ ×П|ª²Ã 0JZ醤¶©Ðú/Y)£UdVu³PL!…¡=}J21 Z­é:ÂB³×D«…¸+yü~a;‰K¸.éùj\Bcý3èÁéß øö m´Ê”ò—Ö#Ð jëùÙzúYòi-òËš›’AO-j:FÑS=Ï÷=áÑ'Eyïêgnj%·©…ÇcrÒ6 $·»bf©‹ªDKR†£f¡åæ ^¶5&Qþ[5,$¼ŒT`¬,vñnm{òþ­mÃÙÖEÄT”´5hj…!»…`4ÝM€ ku}¸Í}5ïËò‡”Ø./ѧØQìØ®>€ÆŒ®ÍتƲ¶^¯Xµ-]{ or"=½6» éçw¼K \š;ÉZ#ޤÆ]Ms0×ʾ‚¦ ¸É†Q̓MŒJ5$%Æ*ûC¤’ÔÁ=´ö«ƒ•m}ábMEsô!VS¹³þS‘jš+–Ø¡©´#ZübÀýØ4Œ¶ˆ¥vå-Åzg†÷1çÙyxœŽon2ëcÎK1t]Ñyݘ,ÀÒZþš¿†&…)ì Ó7½L¢ŽºI(玧¡ ®…Ô£%”¨A°7ÕÚ\Ûñö}àΣ.9|4Uf0F¨$"¢8ÁPB¨YVà‚ ˜7]Žü…÷•ÛgfXæwÖoò<Í> ÂS0ʽt¹~À×Ï'ÅgæDLì½&u+z)YUøñ`Úß ~xÛä´tŽÃ5Œ³o—Q؆±"fö^§± 1bÜÕy†ò‹žÌPsZ@}El–Èdw…ÔÑpÞó”èM´¿¸õ=9Û{ëØjkrHV‰ ±g"  &cÙïéd¾çô'ÓŒo|à]B¨ØôÖHÉœ Hfgܯ¢–oI¯•ý6ŠO®}QéáìºZz*Fªq$ÉMl㨯˜w¾Ý¼·ÆZžQy(„)­´Fm¦ûA¶ã~½û9"÷ˆˆö–·”Dz¦Äó·þgÊþ_¿çõàñó}}?é f¿â}qqþ'ËÓúóß—ƒÁ†ìûÇ犟á×»óûf;%VÞãr°„¼ÄÑ E1iÞˉ´Hâ³ê˜™‰Ÿæbf<ÿ~iZ: èšë¼à/àR.L+Å/özÅ©zÌVÓ6¯Ÿ•¦#Î'Ê<Ùç’Ié?ˆaÃàßéfûýŽ,'¶ÊÔœ ‚V.Àó¸Ïx‹—»¨V÷¡mçzÚÕµ¢Ö‹DÚ-h™˜™óR_ŸíŒŽÌ0“­¥–=ޤ䣮<çšJš©ò=*¬QUåHa·]˜(lQŒ–¤Ú•˜<r'O·—üp=Å¿[V/݈ÐÑ]zd.:4X­**V•‹mh­b±ZÅ­û´DDLþç÷ãó‚!T ŠŒu‰¤yÅiX‰ýÓùˆßƒÁá¥CäÑúá\.ê~—øG¿¶µ¢Öˆµ¢"Ó3åçü>ƒÅ¼F:½_ëÇÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/picard.jpg0000644000175000017500000000631212233761321024472 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ  ÿÄ< !A 1Q"2bq#$BRac¢3S‚‘±ÑÒðÿÄ ÿÄ; !1Aaq‘"QRb#4r±²ÁÑð2356Ct¡¢ÃÿÚ ?é–ÿïïÀiÁÒ‡>,ÄEqe¶¸âÜxß·â¶¹¢¦~}¿WêüòøõDóW%´î¶­ÃÖ#ÂÚw®ê±µ­42{Ì"Í¿Êh©ÉwÛm·5­èÕ›MÂÊB^㳌 !2~1Xåck6Õ¢U£Ümw³n¢U©FìörL5-#‡^ <ùIÄŸ‡¯º$a¢æ½–+†}¾ 'y.”U£cí[ÂÝ÷­óWgO/Rã³ 7­cg~]‚Xm‘âó+÷ùÁða_v=3®ÈÀ`×eU%©ˆ?œ1öc ÆóÎîöžŸ¦F­:Õ܇ÉUÇ®V)“nÁR7$ h`H#¹z-±Õµ·Ú”éY »„˜i ǰ‘ËqbžMÔfSa”~órº>@ÎߨֆÀ¶é¾¿:^d¬–ŸzðŸ[ÀÉC Z¦$7 ˃`Ѿ$F/±^Œâá’{ëR’8+H¾Na ÝÇ¡²–zÀq¶’·m-$,i0¶ŠqZ¸˜³ìû=0Zí¾»^µ¾Ðx.U0½¡›Il èŽJ銈ª$‘zÝn–-Ad˜X†£?¹ë}™U¢ÜDÞX® ̓£®í&ì+¥,€Ğý‹<­°£EÊu´ûtrÛ•Ãu‡%Søý­ò¯·kËVÛ×¶+<ÝþB¿(‘uÇÒkTªý‰ºqk}d[Ÿ0ÑÚäòD[Þ¯z²•¡hŸ¥vÔMýÀDÓLÖÚkѬ¥fF×BûŒð,FÙ%‡¥^•`ýVœ”ÅVUݵ™A$ðB’A …ЭÈÖ:ŠIñÖêÕ¼pÛmHøsBÏ…´ƒ#xO0\¹r,¢³÷Ô®Åx”WÌgGJ ÀƒåÃÄ»ò$"•ͧY0î ’³)˜øù/»û·íxý©âwþÜ;¿<º]:gc5«9Á»4túÆpõöê¿jÍ[x‰© ë»Êù /V]Œ;!6_”XÐvÏ9ˆ£k8Á¯§LýÔ~#MBt3›V\ñ$5ú×—jáŸë?};Wê|>÷¯gVu7º©²íê1 <£q’LÉ‚E²Š,µa¶ó@¡W˜È0°LNxmäÛyfæ]åÃËõ†¾Òâ‹—¯Ï·£¯4a Ž*­¼ª¸¢ªþ•;W³åãy~Å zÙüÇø{û—ž©¥HÂa‡{ï~‘ǽ>)çø¯¢3ÐôûV²Þü×¢X)D‚4 wÞ¶- Ì™2€wOo9¡ì£Cê¹±´­B¯ì=|^©µÀŒƒxǪvÒØÛqX®AÖ5ª= é &²ôÚ¶=‘h¤6ÏëõU™v³»ÁM…Õ·¢ÔK_‡z¢NS ¢BƒÌ‚3gh4L›×}7qá>^#îüªÙe¯CjêÙ˜‡×´k¦Ø3 îBáa´‹—îËüÇO­5’U§þX$†àš‹.8`6EÏmø¼ {ëÃUÞ:€µjÈZ#‰wûL ÔÙýëv£lÚÖÆMá%áqCH†ýBèá,í‘Ðy{qjpІÅÂ6Yå°]…È*ֱ䖙ÒÓÎ2€4üì³^:1‹Í¨‹àô&ÙfB@–‚äÓ5Íi£H2m”劖Ñá.L,d™ ¾‘`o9ôÕ—Y[gYª±Ô4Ï.©ÔÂãâÒêmmk‘m{£ÜÙ¤ËǶ­‰´†¦S1QÖcjek²]†Û± dLé'Jõ›2Í)ÔÓmn©š®¥Èëd†BÊ MT•¤#n zÞiiPÜ’.+'k³Ž@¸Ï¹DãsCD F!*Wµªnnǯa/oÝ7Lµyi„˜©kšo5`ð†2Ù,Uû} ´Îp“#rP­•Qþî–{ir}™9vþU¼}2u´Ã·û•?ù{|»zT–:R´sˆ;1«&çyãw'+Ö>`…SúzFºXViuØ2udŠnÚT—ÉH-ò,uw‘Xí@u¥BiŒ#wpÍÙYùùå#ÄTìøù.8þKý;:±ì(]PÑìÕu¸¿i ŠLB€J*Á€ *s2Iiâ·½Š·Ÿ#ƒ··=³3€{†#"Æ{Ü~³?ýŸáÑÔjbÂ"'…—’"ˆ¾ŸéèêW¢Ð÷?Ù»»û¿Éöð:çû~ŒQ©?‡kÌ`­ÿ¸çé÷ûÿÇãáü?—_9OÕ×n/ïùó$a¦ÂY6ƒÞ³‡ ‘q5~E¿CªïæFj&U]ÃK×ù½!è¯7 ÏË™ž2ÅÆž/¼÷Q2ÃæàÛiåóO/ONÞ«Ÿ¬ê£Vl-Q°¼JŸy¤‘ªÙŒTR¬6]—r€P~*¯dž3 ‘‚²à™c˜Vó{.ë˜ %J6Ônm®íý&ÞþÕ22á°v¶J8ÉR Ã-Fj5Öâ‘4é‚Tž| ä9À#'·µOת!o|¤å½>ÿ\¬ÙƒL q\Z«#  4jŽøi°£àÌÆCd ¼‹1'6Z;˜MÍâ°%Vª¢­«¶™×ÇTÕjΩ_(8‹`*0DL'”|ó¼ÝÒÄäØI¹=²²Ž=”h67e´=›„C‡N:e¶Val¬kœWQìmœ~½°Åé*u™ Ƭ;3IÖNWciíʽÌ[•[^•ŽÄØÔžFäâ’À»v¹#ZÊð—QQ°¸Ò k*o¸Õ¤öãí½ÓXõŠùh·í éˆÊqÂfæb+ÖJÜú­‚œi+Û+SšãÕ ]‚6£&½Z²ØZ(}®U:O£Ð—Tì>@¥·VÎ…ÍA¹Ê+ŠŠX¹S µžnªZ5‡¤ŠŒÁ×vàv¨#júÌÂD¨$†-!q’³°|m™xòküŽAcÔµ²ÌᎎŸ#/F3.»aüärvöIa“Ï\¡• ZnLíi5†È;‹JË,1•k<_Ó«>æ•=2¥C5méGR’d`s"I&däæd“ž+«zjj½C–,`É#ìåç$DǾÿ÷ÿãþú:\⪪£ 檿iñÑÔ·]E/py·ãÝù“Æ/\Eñ1ÅÏ$ûh™|¿{·¯Ç#-eèÎgìãLÞc<šw$m+i“®9åÜW\;U{½üû½ì»NŽªò_õ¯.¾f<~áÂgæ‰2Lûa½™õÖˆNj¾cVr®pMË‘€b±ÄÉâ’‹‰ tlÈ ;6%0ëYL Râ¯Äc6õ:Ónµ³íÑö~jÏah+úbü1ñ š%€·†þw9D7è÷Gã%"9 èêÝvºfʱî@BÅðüp[`èéæÓ÷Ö‹ýýjq2§ðÒý6ûkÇLÐm»9x­á†£8-#ÆÃqa„Ì@æ²FYŶ»Í·ƒyw1ǽ†`½¸âˆŸ9*©+±Q<¼‘U×Ó££¬µž¥÷p*Ó——ÙâG$NÕòOŠú'Ï£££®WðWñÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/boo.jpg0000644000175000017500000000733312233761321024013 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ   ÿÄ( !"#1ÿÄÿÄ8 !"1ar²34At#$25Qsu³´ÁÂÿÚ ?@sæùÊó8~@•æ9D´`šîç&U[è01ôŒ»H•VH‹ó»„PΓ,i ½ [[íÞ¢_[>añ¹ËÂò7[‰„¶Ìïe¤¶×GQ©”ì-*fBŠéÿVºLÁפ‚‹2µ‚ÈÓÚ.h ç/âGÏ~…=bù ?ËVS©ðwc»¨¯<ƶ²Aò"ìk¡Æãôy˜_k†ì]WÚÔÀÜElóéåèW3kkS–s®ŸS'Åü/Eò=sžLN_rö`cçrÎq¶ô[©OÛ¾X²ÿx+Ž„3ò”*;üŽZ’IçZV·•ÅâhÉ#åû8æ[µeuž M29°– éš)¡£$rú„kr;Ö?! ÅYÓù;™xiMY-¯bäHðãg˜J#¨~¶e;ŸGm”75ç¿’oS}³tYþMËÎ[/773=7°F°ß[T+Þ•J(X/¯JØ¡7ÒÂàˆÎëŸþ`=RaIV¹¯v ·éˆÚ»Ã0S¾Rz"³ºœ¥”U¨KPedg[\Ú ä"®Ç¥QžòÏ4ƾP~9?µ…c'w¡Úôµù&ƒf«ÓArÉïBêŸÞ“½$ÿ8·Õè—e£ „<ºÊåZŽ>ŠÉPa+vÀo}ÊPÈX-ís[⟷­9£rw©äs9õ»„‰bÈ5ádÈJ…ëŠÁ+Ô‘´LË,D0;Û}ö±ò“Bjúi’ÁR¡ôe‹)KŽ ÄŽ;›IÉÔ²yVDù XxKùiðc“Ë/åZkxŸ°ÖYèÔxúzœ‚-§­D‡6ŽÖƒ(-ûA¯ØäJá½®AüÙ!åÏwÙ{¼w[‡¿™²ˆµ3Œ›©˜QѤDY U!ŒÂ–i`Ñk^ĈÑ#Š*ù/¬?.ÚTY±$H:Ú+E~’^h{›H±ÿV±bÒÔ|/6¿´ÌÞ³|»æ­Í‡fý3¢æç5Fµsçö,£*' %i)ô²ÀsJº Pb„ÃöYÛØ,ÅÙzG嬬ɇ#„Æ^©i›+óš×X”‰Bov˜î _›1fp; l¨>MØÈëÚµ†ÎÙ‚X¿Í­$+oä v"6êéesú·>¢ôNcÉÞïQ2nGò>Ñù³¼»ÝùÒê<­äN¥•³‚¸ŸØêöu)>Õ©¡¿}ÍM®ÄË7h×¹yæ&“i¼L+õ{Ïù[Êüæ‰ZËýÍ óºb2ßêÆ§ I@;#i/ë¶M¯¢³£°ÝÍ#êº+ªÅ‚I¯·á­^sÁ}vU»:½1ñ¨Ϲ _é”ÒZö"q"|HzV漎ЕÅ5ù³häŸØt&[›ËiÕ6r¦"”9&Œ+ïA(‹ì†ïú‰5w5ò±¹ôB쪵¨Cª˜‡²¾óÕöÍé’:¯2Á¾Nñ¢œ½Ú= k‰´úÅÀw4•tÔVRAUþªŒ÷øµIŸõïù×9æµÔ­Pök©gYÒ21a`ìÆ#‚WW ¢(KtHOS±%ˆ!°¤Ð´Î™¥ŽÉφª¯XßXä•cVygk’EbM1pûxS¾Þ®(:oQœ×¯N‹Ç=–ÿhd•ç3¹Îy<½,<~*½&†71ª.«¿Sd:z½CÏjôtVœûÜoM•Õãón»­·”ÏI—¥¹½CQôøG˜Q#N pÍÖ´€ÀÑö<²Q’Jª¸QV/ìÒ  ÆaŠl°E’c˾-ãxoQûžŸÔè²^\·Pß8›[E[AEÈ[-¹úß:ç d»6Ð@¢ëÐvyîù̼­E6SèÉs:4 hKZ‹›¢úikË@™²¦E6Ap’÷‰¬ÅëoÆ~GWa¶Ñy8%¯ô.^êÃØå匱–Õv®¾%‘äa#Y /S¢³2Ä€pa4¶¤¯·±g0nE¨³·²¸Û$®)W¸²¢e™cEŽz;ªÆz™¶˜šÝžÛÓ)4•Êj«hï/PìÈÃP7i8j*Aï •Ò-h­=¢->Þò~Y¹ŸPü~ ÂG‚àKÅÉMUøeè•Î%“]pÑ^`ªÔ!h1Õb”¥k%Ç´Ÿµç–lròãÆ±ÔtÁdzXƒ@Y|ì@ °¹ ü°œ»5…!bd r¡÷^ ±±CÁ#okÕGÃuŸ¼sÇëÕ]e³ÅD˜`:¦2¤L^NåÇ{æ€%+õÄ)Ò¬^´lªŦsé·øÔÉÎ×ÿ>èU•&ˆ±ÊâÆv€«—VVl`.h¹õÚô8¾Ó𣕈ŠQ„ñœ²Ü¯.§+¥°ö*ß­òc>§¦'h) ™ß´ ’ WÏÊë )0ŒC0ÁlRƒÜùþIåù~%ÌÞqµº=ìüÇ™ËäˆiWM¢±ª¦b´µ.j?BH0Öä%ÇKM¦•¢KFé:w²ÕlegX£Š²HÀʱ‰¬Âˆ½‡„̲Z‰º\€‚Bä¨ToKn]EÌŒÝlfO†y"«“ÈNÓ¤aÞ.Å©šFÞe §¸³¿m‡§Üp¢1Å|¼ûéÓGÓ•ƱùÏ îoløÊ²v²º-Ž„mÆá…¨ù™29¨9­öç+¢¸í@ßáSÀ¹®G‡ñ¯[^ÛC=³±ÐÄr–P¹ kåfÛ 2Þé3„s~£ 9õghÀ,ÒF§ì´lô%7¬P¾_êø9JNWÉ1š_ñ]>ØúL(¢ºgY{´U2±Ña(fÆUÁ¢—êhÝZ™’.Á$33ÑIâN~˜gÿâ§{‘TsŸ’óy›üâÏç"ÀŠõzÜQ0”¸…ñ-¶²’:¿béC Ul»¶Ð¸<®A±æËÐÇ\‘ˆVgIü¼J&‰·’9Ù }j¡Q¶n £fšsƒ/‡å…Ymaã¹—Š3ŽÜVpÖài¢B©jzð¼™…k¨Ý¢eIfŒw•Äq…WÿÊï¡s–g…ò}X¦“æÐÃ˯K¥§=Dš[DešÀ’ý€”¥*Ð_ ì%-ø¼íé{Çþ•›ò–ΠɯÐ÷¢Wš-©þ(>=‡˜éG”›÷ÛØ]†(‘$¤vh£©û6¨ïs?/xóÆþcÉŒ¾±nk_'ïV m1f0ĸìJ·xE\#)")0JÝàUÖÑ)7ù+æ§Ê8ÜŽ=<çµý/Èy­…xwÍž @Ù}œ¶ÕO›Ã%íÈ¢ÀŽÝÜè×ÇÛXOe†3Yk­tè®JãV¼M@ðŒ=1eå™ËG]^H¶,%H]¦·!a¹wA±PW€Z ›3˜¬f˜\äÚô²åóV8ê}]¥ž¤dE’7š@µƒª< ±°bIj´ÓÂ𔦙s†"èÖ¯s¯¢ˆbô‘3¢64±&²6CÒcâZT‘jÁùeîøÿD|O=Àòìm•ç©°ÄÖƒ“êS!:èGV©ZI[ƒ^iZR+òøÅkíà±Ì-D ,rX¨k„!Aóë 6öþg‚‘Ó ì¬qÌÁˆ,e±»@,iÉó÷o¿´ìʳm.E!&Ó –nÀÖ9ACܶKsPV¥KbÔc©-x´Þ)H´ÌV¾Ë“ÔgUÓóÉxïG£ÞÃÐh¹Deì} ǽ {\í$ÀkØà­b^Ó%‰3ó&§áøoöÜ/¿Ä8C¿Ù²Þã|rpê¸ Üñû»È%¶ã|ÊÓzêƒI–J:fZ„`îŒÅ1)cžÔ¹/kVÆ,ÄÄ’þú›ÕqIÅø×œq/Éš"!9›Û÷[+ ‘ÞÙr­¬6ÿ™éiššŸðHµ×áø~PÙÏá«øJÿ⇅•/ª­ýÒÇÃ7?•èúÐ^ÞÙtGËÎ)„ޣ̌ÅþËn¿ahcÞ¤'Ä!¯Îñ6øˆQïì:D|yܬÅü…W—Î@·Ü—)§šâiœ·ˆ)w5†(:˜È9%,´™/eØ’L;üíî~“¶©úÜgõ›ÿ<4´çÙ³ƒoö¸›ó‹19‘þ¢!b"#ýDD@½¢"?üÃðü?Iõ8ß¾Þ÷ýN?ÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/angryboy.gif0000644000175000017500000000320512233761321025045 0ustar mathieumathieuGIF89aAA÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ,AAþ± H° ÁƒVY¸bÅÂ* #Jœ(±JË ^„H±£G‚1f´bQäÇ“3V rcÉ,®@IS Ƈ-E2ÀcÍ:­Xɹ‘dÏžN|I´¡Ð‡8‘òœ:S)B‹L/²ºBèS­Zc¬jµàȬ*s"­ˆk U«–5Û´eO¨V±Zµ’åÛUy牴n×¼z­íZ%/+V+Ì8V,L–WºŒ9µÏŠYV,[I‹,-ßµ¢™³CÏ fE+Tl†o6öŠ®èÑÀ­¡DÓ²C’LõŠþxµçÕ¬E> –(kÀÿ6ß>:úçéCþRfhåqÛÇÞ¹«ÞcVÖlÙZœx½}૆'Ŷ73äÆÏÝ'àwe]I«@ÜcÌŶŠlŸÁÅÞ\CiÆtÕ<XoZs͇×À•d¼5šdluˆ!\š­"+B¹¨á^óéb«|F›` å¥àhpV%ÙŽß±¡`¬1ˆaz0æ…ÝX¼Å–PËA6×[Ov©£…$9”#h$• Û||m™`—~ÙV˜H’ÙXcgÂÅ‘U°é%p{ šoŠVä\U°¢çž2§ÙvBµ÷“‡þˆß›Ž5¥d®ˆ!d~ò ¡¥p•†#t€=÷c²j‰’VšBþ,.tjŒCîÆƒ{½Ùlš½:PEöIêƒýáUß^¹úŠÐ[èµÛ®õ…¦™£ÊÄW£Ä:7›…ÕJT"o q ]Ÿmu;´E2Ö‹È™K‘c%^ÙØa¶ÝénBðyäP_=toD%j^Èí6Ô¿Ñ7¤JäõXoC´Ùœx=ä•H½•ˆp\ü åCsbä±½ÞpZ,[#jé.`0Þ†e7ÍÈ­»×9:³KÂ8­½Êúf…A!¥¸×~Ø”i.±Éô’ 2qŒÑ…êtW+ðZ"Ò/ìµef+j,!¼+¶Ôâ6VCSõdv^hÄvXTM½«ÕqÖveÝcƒ÷A{NVß¾÷à¦AL¸@VŽA/nšàA¾¶S’oFV)¿Tâ÷V9°qtƒn.WNÁ½uS<³XVÌgQk—¯íú½z§\å’æ8UrõžwK= QNÅ¿;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/iceskatekid.gif0000644000175000017500000000307412233761321025477 0ustar mathieumathieuGIF89a(<÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿ,(<þ H° Áƒ ²JݡÇ#JdÈjáÄ‹#VÌÈ‘ãÆŽ %~ I²áÈ’$7"òrE†Ë+]¼ B)Ñ•rêÔ¹BÆ•–2¼Ðdee§Ñ£9X™™ò芧P‘`!4$+£VpXa…U @^Ÿê<ÐÅêN—9W°ºÆŠëÚŠYÓ^Ù6'‹¢[ײµöš_¸ZçzÄb…9ùeh…âÅl뮸Âô"+D‚®©6rãÇŒûÖÝ*xâHÎk¿6¶ò¬c¿ÎV†81€·Žu ½›­Öœ¥i[LÔ%'ëkYÁê­¨×÷γŽD„Ú·[ÈGë$rx"/8wþku[1ûïœ]¢SôžèJ`coÕÍ7;Rè­ždxÓmøŠ}-†Oi"ˆ VÈ{‰dö_Ö·˜vó—ÕdY]áfO5ö`‡Ù hg*VAçmÕay‰˜Vbx=Ö˜T<鯕r3ÅUTåâQ6¦H£Š*’¨ÕW÷9&äN"* SîäVR)ù:&çX\ÏeéáMCÂx¡X R±D{3MÒ]CѽGŽH[† ;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/female1.jpg0000644000175000017500000000755012233761321024547 0ustar mathieumathieuÿØÿàJFIFNNÿÛC   (!%"/#%)*,-,!140+4(+,+ÿÛC  ++++++++++++++++++++++++++++++++++++++++++++++++++ÿÀ¾–ÿÄ ÿÄ< !1"2Aa#QBq$3R%47CVb„‘•´ÒÿÄÿÄÿÚ ?•(<]Oª¬:V”Tj+½º71ï`¨˜5ò†]±¿SÈÈá žG„]'^zkUU ÐÒ1œ—80’/ñþh*pqÉþH(9(9œ4qå%`AToÑͪ·¤³AS.ø¨nsANÝ lalrÀçß#ÎNO8ð 怀€€‚9z˜è¬úŽJa¥#’kËXߎ¡¸Õ5­ ŒŒ4°}@qîááPŒ„Pu ¨8(Jm”M¿G6úª.’Í=L["®¹Í=;·½±ÆO|o8ÆÞïÁR¾nÞsÛAÆpqŸØ õ?«oÿjOü\ßü úí}+×—:ø©)´í’É®©¤|Œy|­>ädñä Í%ôÕseÖ‚ñ®å¦¦‚šfÍò–Î鶸ûew, $4àoÜ×v”ɯ:Q£µÄ’T_lñüÁìsEu3ŒSZKxyhkq¼8 xÁ „rë§?è–œ¹j5v©¯¢£Ú÷ÐÔAºfEÀ{ûŒáØ>ãìh É'ÛÈGtÒ–š·j>«Fë£d{mTÆãý ÌÉ# .Ç$ýØã$ äd²ú»©Y«ú•¨opº7ÓTT–Ó¾69ð°ãvÈ%Œi9Ç$ð< ´]=2Ö•ÚXÑ_­ìïvrÉ錎cj"pØHÿ"2kN0ƒcv›…-ÚÕGr·ËÞ¢¬…“Á&ÒÝì{Cšp@# ŽÊ©¿ýBtñ=×’SÛ¡‘–*æ|EsœýƒÃãÜ@Ék¾Ù$5ÌÉ$ Æ($¢·Aýd^Zèä5&ÒòÉ€1­îŸã$’[ƒ‘ŒAPKÏFºßã¬UÚ6±ÿ¯nÍU`s¿Q¼7ÙI$÷p8j $€€€€€€€ƒ ú²Òÿ>é\×!ß[f™µM,§îHb>Éå­ÂGF"ñecôŸ‚ÇÕúXj„mŽëM%–ICn%²7ÏÔ\èÃã%ãù´:µ¡+´±¯¶OOË{Îø ¹íµ`8aå­sCÚ´`;#öAçÔè]QK¤›©ê¬u°Øœö0UIÐwZí§Ý°äüm$œð‚Û@A|ô2ë=›«úJª•‘¾I.Ò‘ $m˜öœx#Ù œyðƒb¨> Cj‚û`¹Ú*ß#)«é¤¥•ÑÖ½¥¤´FpxÈ(5€€€€ƒê´Ü*­7Z;•¾^ÍmÌž 6‡l{Ó‚8 pFl—CjëF·Ó”÷«Gz’_kØî$…ã£{…Ã#ðA$;užš·k 1p°Þ[#¨kXóö½¤æ¹§÷ŒäqÈ#!¸5U†»Lj;’ëÊÚ ˜ v<9»€%®p8º)Õi¸UZn´w+|½šÚ9™<mØö89§p@àŒ Ú" X  ½:SÔ[¿N5nV§w©%Ã+(^ìGRÁö?ápÉÚìd|‚àC`GTÙu…™·]7pŽº…ÏtfFÒ×-s\š|8 ø  ÆÞ£:Jþ¢Y©îS5µŽµÁ­qž{NA´“´8nÜßì×=y«µ^©$£¸R¿dÐÈ9ióüˆ ‚È ‚ Àƒb×Ô:ûDPÕE[ñzXc†çÚÖHÉöûœZ8Úòæ‘Á@ ù¬PvÒSOYU -$2OS3ÄqE Ÿ#‰Àk@ä’N2÷O:mÖ+TƒIY«mµ/cãšX"{šN _ ÎÍû5ÃìPMQ~ª°R˪íôTg1¦Xhê Ìh'9hÚwnAx÷ ^´ž¾Õ2ª÷`´ÜªXÁe¬£ŽWµ ’ 8É'’ƒß}5ôö娸:k•§·»wÁVwsŒnïøÁÆ1äç<`:¬¾œt튩õVMO¬mµ/aÒÑÜ#‰îi –’ØÆ@8ü&“NÝ ª†Yuþ¦8Þèe†„2@K]¶œ;ÁÁö!È€€€€€ƒÀê ªӠµ-Êß/f¶ŽÙS<mØöDç4à‚„Ð@@Aíi-zÖ–ڴݾJêç1ÒØCCZ<¹Îq hð2Hä䀂QtëÒí²‡eV»®ù¤üÿa¢{£€}CÝ'®Ù‚;‚ ñ¦4­‡JÒš};h¢·Fæ14ð†¾PÀCw»êy<¸“Éç’ƒÚ@@@@@@@@@@@A€½cj¯”ôþ“OÇéo³{Þæå¬Š1îÁÈËÌxàŒnðp‚ Ͻôûw¿Ýa¹kš ›]†/ÂÍúsÕâ6ýQ·ŽIFß;š÷MiëF˜µGmÓöêk}0{p3ˆhnç.q s‰'’ƒÔ@@@@@@@@@@@@@A =CÙõž±ê¥Ö²KjJ‹m&Ú*7‹\›K#ú‹\ÖæºC#ƒ²I<·ô¿@ú…¨>O’ü²’}߯r”CÛÆ~¨ù”dŒgÜ •¡Z/Hü¦¯åÿ1¾Paÿ0¨{ýòóïnØÜíà–à— È2šÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/woodie.jpg0000644000175000017500000000634412233761321024523 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ  ÿÄ$ ÿÄ ÿÄ/!1Q #4Aaqs¡±²ðÿÚ ?Û÷GtBo2×l6õëß|²š–Ó«ŠyÝ—jYNRÆ•.9-0¬¤?ý‘¶ï§vØ{²“fÝZöl‹#(ò!å"6yãîZ7eT¨¹mÕî=&Fr÷Ví˜åš«Zà®z—ôÕŠÌçB„ V|çÏ œåzZKq§Ã­®»Ì宺}z½w(šÙòù|:CƳ¬!w–†¢Átÿª7¢^ Âs ú‚îîob»MËû¡¨ººãhP¹øÍh×+ñ­³°0ceÈ]²Ð®¾@Œ$Û½©Xöª ýIøo7-äYؽƒgÉz‘˜šª.1\¬µq{‚@AKÚ”“._nŸ\Í¢–—Ù|Ðl‡çWD×}kDΨ‘»yFsû›Ár:/ˆ¶ï4t]^:s#Ö½Jp ÿo`®K‹¦ð·å»°6 3* Ì%õYúJtU›­•bžêt‘YEÂÂèÚ<š74WÓ&G#Jîë‚c°µûÚ.‚BˆK©?ߎ, “¿setÆ >¦Ùy—\+cTãTªXËê`;]憵<©ý¡ÍÔv`c£Úk càïð·ºH®Œ —šJS\¬âbL¾%°¤›iF/|{™Û ŽÏÕåZû"ÂÑYõÏŸUÈåžù±±¡tš@°QÖ kÂO›öEÞ)„ÎâúµÑ]+fAí^…÷JilÒ"±A**ÈmZMŠ[M¯õßÀëî]—Ï¡'%]=\æZÀ©ºó›<«¬Ê»È=ºªãrÅäñ#WŒT’ϰÿêÀñ„|׊á½^gˆXÉ ŽÇÖÀ÷ö¢Rñxóbb|Z³ãꥼDÍm3|LLLLÖÕ˜µfÔµm YûtùóçÞú]e2ÆêŽšýJ¹º .Åvæ/ÍúNÓ°¹ç<ê¢:ï®Ïu­˜e(ÙE¦[§a«ùö)Ðó€‰[ïTwD¤6s¢üÂP1uó–ü FU•)0ãÍÚ¨çêÍʹ­´¼™¡“µk¯ĉ››reŒ²A¨cDI¤²šM„¼V²S'…³92Ïòû¶¨ûFÕ“ÂÇ2¡.«mªê—\õhëcŠMâÕd$Ýná^µÕØMòÀH:Ú@‹bês„e¢Àˆ°“þù¼L:·øÙü/ût¤™¯/Ì'ÑÒãùŽÏUÝAXë+ÌvÐg y´eÍÿ,u4b{³óg–™P¼Ž¹x³êÓO®Žô÷o“ª×{·üWK}±ã,rlùÁü(S+¨fxË‹w6ZPǦñùþMòISN4ª¼YÞ Î;QÆøÊhz ÙÐN¢ÚÑtUñ±í#}[A°¬¬h¢â9Çò¦±S¶Ú¯4Ûp¨¬špµÉW%-¨*9@-üòkÀ¬Âвk)ÿCú?tÁd>fø“ð·™#C÷)ú®nOr¶¯QÆÖ•Nq†˜~±8ï®ë$ÃØ8y×ú´ m—¦Ák‡¥Œ¶°VkB‘0ø7ºý…—F·Ë­ ÅáTTÕíæЦºmNÍïJý# Õí^m²wJts(kÏHômUÛOÚNsYA½MwNúì¥}©îMªi¼Œ›Êi$~•týµßü½Ï¼ü¥«ëF‹§f})¹F% 3ˆ%T¶‹Ð©ÝÖcÀ÷­‘[¯ØÕe6ÕŠ¢Õz_ …,,yÀ­ÚáÞ=8ñÎÊz”½»£È›ÏxiÃÅxïI‡uI³É78ú 5ÍœlkççöôÉr#Ãí¹¦- MõˆFR[MZc­ô{™Îå<&‘†ØÆÓ™Ð{@áãU5[7³õ²ô’û´ºpwªm_{Bd¸†V/{]5ÞüÆÄÕôÕî¡Q–wtÒ¸óúNÍ”LRîÈZ Í÷Pòƒ§)d"ý‘2}iúôû™\ëVC•Rþ«PY^S¶sÁ1i—ú°'mˆ‡åé÷\&Hêͧ-˜;/rÛ ;Ã!uËþ %…§x‰½7çÍ1æ&'ω‰‰ñ3÷û}¦&&'ô˜˜˜üâbz]b~—å.Îã^ìu~…¯ÌëZbUK^Û fVØçJ¸Å=x!VÛ®ñÔÛìfšåP+2Áã‘ £éÄêÕðP“3íß¡5ÂàŠšÈèÕë"Ç¢¯„š°Ò•czWRO¬ó!éÒ^+:·+ ±*ë&BmÕí;½Ÿ².øùµÞ/C-k÷Ã/ÔîÞ×n陚ÞÞNnCZÌ[ŽIYj™‰íå–ƒßL4€Y]âó¸ËУÆ^ |wºÿŠ7õ¸â›²íŸŽ2Ø@jð¢ ÷—*fÆyüG–Q„A‹Íl -é/‡£²¢þ›~xYn0wz«Nõbõ„¾6½{X¡ë63‹b,GEˆ6fÍ63¥Ôï?£b’%Õy6+ãK/«S%›ÃŽ;¶¹Õ.…Y¯l®n¬Tº ¼\ÐÑïçÿ J¹›ÆOþ–@ªIå °ô ­ªŽ3¯ýÚBØWmFó“ˆ9ø&+|BÓ'¨{oÖ‘}†ë>ÌIó®ïOõ¹3mAJV§Ýt½—7sCP “£ GçþJÉX{˜”Åq’£&Dˆù9Â0Ÿú||ôŽç,sµî§ËiF³yO#UvÝË»§îl:áž`ùyøÉhGºÅ@=”t€ :õˆëL’ñà‰íˆv÷³P“„~çîJ%„ }t=®PXÖÍ Þ"«Rôñe!{Z³óýB®´g–™œ·ßfiË-R¡Hä;=ðäë÷Ü7Åßœ\dÅËt}¾e«fQ¤oÑ–xeîÛuûŽy>³ŸZ¯÷ÿ¿§PIŸ3331çÄyþQæf|Gåfgõ™Ÿ¿OŸ>|ºnŸqŽƒ­ë»NŸ{W³’ìuŸO“ñuñXx/ BOd<Áˆÿ'Dó~ï#Kÿ¯üú<Ý·Í[0ófåóî,ð—þ–éëùÇ÷ùê-~`TõeÅœÒ]´¯ÒK£Æ•(¢š¸¶D˜è·Êƒ„ÐÃaI› ™³$D‹'nÝ·Ë“·N¼6oÛ–vóçݺnŸ>|ùtºÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/bret.jpg0000644000175000017500000000744512233761321024174 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ  ÿÄ)  "!'1ÿÄÿÄ2 !13±"#4s5Qqruv²³´ÿÚ ?¾˜ì¥õVªúýì»EÅ´³EV¼ßmXkÛB+í\æÚ˜œQ‘uá>nÆ<£ÐÕȲáç”|¼þæõN·V£íÏ“Qúš,îÃSåêr¢æ— ‹u·X»ØœãÒ‚A¡I°ï¶àõ\qðÿ”úþýГ ¨¯®ˆï‹ÚÈŒzoU)^¾Ÿ¡IÛ<Éî]tµî(¥dÖœüaFe·¬ IǬDLÄLúuÍK6±j\rc Ac2˜€ßÓr)ˆý7˜ßhê*þ¼à7¸ù&Õ¶úGy®ê;5ï \™ŽV´Æ!R–¸ÊŽrçVxõ,zŦ³®ï'Ø+ûÒëIµÖÑÖ2 A 4¢yFiöU÷5Ïz;`î~êŽéMò±‚UÆÈçVšÁ£›0d[ÊIlò÷>Ø6*t?ù,ÚVlÓL Èw+$ÅÅ{¨ùÈoÙ_MMÜoZ¤Êé½6lÑu¡5Vq¢¿Óã×*ßC‡¶õfwtЦËech–:ÐX ±š7a(Q ^yÜHêÒ=Qõ¿éÍî!AmGäðó;_Lsöb+•p•¢œUbw`z³!hÌ2 :QA XÍDA"pú.¿Ùü( {z™éúƒ·:]ß<¦Hè#f¢=â¥c1¶­µ“"rrTÁó¯"´M[±ã´H«º|ÀnÄk<6”¦št†Ôä2)²~Äã¿mHRÂiB›FѦ);v2,UÔ-™—,|'-̶Øüœh\½Tݱǥ›kcéÕQ‚+ºÍÕA3“…XÄEm2P2žÜQ Œ˜÷ìb¹„Ƀd-pÅn:ɸ(nžº>§úQEòTt¾’ûzîªI®Œ@h=$’ Ó71.וUÀ6ÈQÔ˜ùC›ŠNµÂMž[lïDUØm­ÜÞ‘q_Ø×CTh„£§å[u­€o‹:ðbîqõ¯ÚvlBŒÌ h|çÀC+®lé¾wç¯îžµîìõÍf›îjÞ ~’¯§˜—Dݤ˜oN‰¿£Uî-4eâzØZ© þÅׯ>Ÿ‚º©º´…­Â[&¿4û¦åÃýËXòG'Ï_íÒ]Šªº%Ù+QÍB”) îÐnt†5kfI„¶™0Ný|ý›!åçË™´^¸_òpØ3•«Žà©°9*ŸzõçÛÖE[µï*^ÿXŒ¡†¹ê%-‘Jv (Òs#4ºìȆ2A–,¥´Ál˜A<< p¨­nÞÙV”Áã5¶k/¨ªéúö®¢âðøºÍÇÓª‹3øùÇ žNö:[b凅K”>í¦Ñ¬î•}·ZÖJþ¶+ìƒ*Ódä-ر6àÉq"ªK“Y€‘W sT“ŸÃk#7§ðùóWÞêvlº‹¢þ¼l½VJ‘\^ÚìPP´Ü¨ûsY³õ&Aœ5¾l%MnÂÎ`»ckD¨â<‡¦C½ØfNIò½SÐõ)èz\—,—)ËbÚ¦ س‘00( 1™‰‰˜˜ž‘R# q1;LH”LLLDÄÆÞ“1Õ¬|X_`ßU\ÿÞ›Õ-?ø×`TX‚™@õªxŒHû£Ì÷{¿n{6粯+4XX9m IŒ˜ (1(ãÆGxøÌÎób=gzÐá`9 %1LŒÈH˜ÌNü¢v˜øDLDïûºs—G7cwt'ÞFPuõ¿$ZeëA!æ„ûYÅTª š®H„– à ¬6¯êwX—™Lk§BY.øÂC\±2ä|[<´deû¼¹kNñ,ªå“Gb× œìuí"å¿g†ÎÕÛ(ƒìD¶°fð‰j® %è¸LBýRÞÑ9/·jÛj`¢"ª†"hK•¼äÅ:èÒcä\‘ú%AÂnù–Lù:ê*Á‚½zÎ@xBÙ Â7·•µ€Œ}Éæ¾Ä6Sý{j{ªÇžHÀÐpn¦KR)"<ˆú<ð9Ý‚ éfùcIOÊ#,ý&¹?HøÏ¸ØhHû8JæœNWnö~ eI¦óŠ™mŸ¾E5eÆ©LD[©(j^(hÕºG7WYi5{åËfs‘E2³-Rî:Ä XÇß_¢·¶5–è‰%¿Í­ùÐ7ån“ê‰üÄÛõ[Ò7ø5r}€[ßËE߃kT­t'/_H§rs²G¾Ar {:ôÓ›#^h˜­<‹.EßX^õúŠÐPôð~£É øñþººy©ýÄì­»„=-îc¬N•".ÃyZ©ðMÃfÝ,$nÂ^Œ Ç——žÃoTUåïY;ÓVÒ´G*ÒÅ5i¹d„òCtW5oÑ3D#̵é‘ÈIâË —§I¡ÌDxu³{íöª­Ê¼°_VõßÖQœø÷ë¡Ø„ Rt¬~¿“mSršºõ‹"L¤°[=40䪱°/Ãn€µY|ÊÄt<­ Æåèæt¦gMÛÆ­ˆÅÛóX[”6¨X­˜e†¦¹)ÞS([j¸ v!¢Kñ™8÷1ZŸºø·RÎcòʱ9*ð (]…»5ÖÆNÓ %ØIŒ®B`ùˆ¦86Ž’R/LRpÚઠn Àv•JáYô1¦ÚºÆŒ*&—zé¤ÎºôV˜ÒY°&´lžÆá<˜ÉR±;GÖ|ç›ûŒÿœ¡ðÈIËùIžB$YSæïËýî—6VÍ>ì“.NÏrÝ&FÏ}ÏvìóÙ—òË߇ÀFý‘ûnma¯RwºÍ†K®œ¾’€"™¨¬i—¼–¡Ø^ç:DbZÖ‘œgîDDMLiNѹJ¬AíÌñ°#¼úÌñöÚ"=:«ÿÕ-Ž9} 4û–8ûîWÎX{ïž{î9{Û¥°÷,}÷ýã—¸e–?Ÿ?ÿNYcÿÏ}óÙWø|>U—>tÿ(ý:­ò£ø—×­3nÁß]×#Hý™ÀföÊq1CÏ(§EEÎ}Rt|a¥ô{1à››0Ä=1dj׬¹$4c„½ûwgz€Š”‰÷BÒ))ñúÊ]4l4y’4Š0eg¯¬QëeŠŽ×³d ¯Àig‚|½;¥ †Æz4 ±ô—!„ƒáñÞÿ‘‹þÛÏݦºjö«ó9꘿õå:Ý\\²ï0tkù2 ˜AóŰt)ÐÓd‹2ØäS³G™R݇•3N©pˆÄߦ\Y:µïÑ»^Ü1ÏÎ{i° „êÙ+¡D´›XÖêŠ Ã#i€ QZ©$ ­-‰‹†¨ÀCžX¬è…ÇŠ:<Âd$é†é²sØ|>x¿gŸÙú¿õ°?ã”ë»ÝÏÍiÏÐÉý(t¹~‡Ê¥'_ÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/bert2.jpg0000644000175000017500000000707412233761321024254 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ   ÿÄ- !"# 13ABQaÿÄ ÿÄ> !"AQab$1235st‘¡±Á4CTqr‚¢²³ðÿÚ ?ÖL" yl:¹\ØÉ励ø9äY¾Nñá©Ï’¢¢sÿ‰ÍKH~I{SSŠE…½u5âA]9g4P< Wx¬’ºDFù/Š*ðï¯+×²ÏØŽÊ -ã>ÙC0‹ÃÎYZ$mw“cW"ý‘ÏV3•F¹ZŸtcžº¶Ž×¹6÷²*É'OöɆÜî,¬å¯˜Ì:€7ÃCk °*v‚lÃJõE…“±#™¹î.Õ7õÒÚbïyr¡ébë#Q†žI¤¥Ha\Ë+K1"6 ÀÎ~ˆ±M©ïKRc[,12¯x¬jŠóÊÁ Ž(VI›ãŸíÐKSª0@»€É2+œéÕóÞå±áö0VÖ‘ä-tÐY°’¦¦r QöY”ĉæ¬N›Çúu»hÙØE†3©sŒÇUfäW{ý†D\78Ì–l! [‘ Š¶d ¢› ÍΖŸ,ÑÇ3š¹¦vŸÜ¾¥î¯]Vì½7”GzCDµ¢&8#Ëñ²çl­Œ{œb" š±l‰Š4¦ŒÀ¬bàjÛ9 {cm•Íöf «±iò½‰›P`ÔF\“äMðµI06¨ªD‘Lò™8`¤í% ±*1 tGN’ZéÒïJqkv­¨«¾E_Ó¶ËabzÈéä•J"V!Qò÷ ¢±/´ŠtÑÚ,Ø¢’ŠÈ(êm0ÛVê‘… $Qí+²äL{¬QH“v2îñóVÎ4Æ»í¿/µÕÁ™WnjMÆ#•áÒÍ-}MÍYäN²Ãm4ðÂm9.¯´`Q¶Æ¢Šß²™ê0MŠBfH\ HœÎß„èŽ&!‡N=Ñ!XäXè&jµ—ù\Ïuß^áÇ?g7ûõUú>Õþíôf—Õ[<ãDs"‚6ÔR0†©YqœÇ&@oŠÃšn&–³ÒñYµ-ÞÉ$¨E „ä°}² æ)9Ÿœ/·‡.–b‹Ü }¨£Ÿu©ÏƒQ¼ñà¼sÇÉýÓv}µöïÛ~Ôeãú—üLEqÌvÃË<« ¶±‘ŽÌžØ”÷ hÿ‰Iinp`VBÙ£*!]OšÝÖwE•ä€båe—³]”42ˆÒÿÈDQ`5Xù"^$èBÄæ?o¹óäMDzB÷·_k©q¬kkÙ•QdtòPQä·­VÓä¶Â+BÀ¡Øv‘Aá1•EÌ®€xÖHÞo)¬>R6ûÕV³^­ó:ÅEY7Ð ZˆbuhX÷Õ‹1PÅg\‚;ÀðëùÜtäz–ýAp¡¯Õvê§Ó÷™ã/ ¾F݉âuÂŽ¥Û¼øL‚ü6“dúxå4[¿fî/O{‚»­Æ-0J­~¶ûûuÜ­&AGhn_šP×Ó:Ú|lŒzØ`à±Åɤ*Œ÷Z«§ ‘I–;jô¨#¸^ârh}Aö7s]Å?^èº-­ŒæÕ²¿´Ë|‚æ bCpʼáo£:êÛ;"Š’Ç¬¥£§¾ºÄ2«¹ìy¨m!ýº¿za3åp˜» ̳#1›û4ˆ8œ[gYaŽ_v†¹rGïB;)15ñ¤Œdʬj:'"Ïq¯¹ÉRI k1‘ïŒ# ‘°•’ìJ’ŸÄ}¢T6d,ò”SeT—1ÒE"•{é2²Ê÷JªÍ7¶Ö´”Õ &£´:À7­•µ˜säITäòhõ7“é²é{eÎ˨žº¦[à»U\áªí¶öJ‰Š(éäŽ]ŽˆRÅÛ¬ÀHò¡½u;YÛs·­–öñYY.AÛÝî_`~3 “C­×ÆÙÎ3NrÝ7†³•è)Gà9oca“»—_Ñà6ãÐlÜ&öȬ0|å÷ô7sHV¶©,¶ØFE_ - Œ’(<’Šåõãí2ý—m^®½ýÔvÙŽcx>/—•í¬×Ë,h¡u¨cÑÒÖÏõ—§ZÊ<¨ZMž*šÐ<Ü[†lþäj©X©­Ôn³#;“6Á¶19­^JX>7,bÓRdG¼R(Á¢ilŠžØ-S "V¡¡ÂÁŸ(ÊZÍCä·r¿CÑàŠñG--º’iM²I0D‚±Ä“•PYÀÞÇ,T‘Â_ÓΙ°Ç­m²Zê$¨¼= ÕߨžozÔ—ê郹ˆDå£!°Žå3‰lŽ)ÿì¯Sá²Bö§Ã_å/Ù?Ó¿Áÿ$ùÿïGM’»°L ÚðLž|ÌiË Rfrq°K< –HUÍå‰ïV*¢"/(ˆŸ2>y ­yrðö}_oõq“û–­8"Úþä›Ùö‡£ñô)¦Ã…â'ÎçIJWXÕÎŽ‡u%n˜Ô¶ëœ3FÁB¥B:’«ìV†EÚKG gá¨iÿNÍG›ªç:çº;ëŠ.)§©±gïk@ö•Tc'U) d‰ì$ÉùÂ:&¹­’V£z´¸—k5 çsÝ®Ǫ̈¡¬Ö.w|e”°Eâèâ»ÿ…ì¬c§:iëÔ6B²2b”ÈÊðïGŒnòÊ ·bQŒÝÖ".½»:®<ŠyƒTØÕUÚjœ<¦¸qÍd/|l%Ò+dJ—ës·uç§?b´í梋Ù;„a ~ŠG]vf­ÏóD±©…“”tuLv¤ãˆŸØ]‡f׹¨D#ôºsQj«ÜV廵u5EOd•ëìÑ¥CG¼GP°!ï„/µÚ]À×"¯§maÓµõTö©©æn±ÞÑ ´¦×%R"=4°)¤5>ð„£€2qÜeÔC~`]á÷š^'†ÛÃ…àZÀ mW¬sE.1È2,iN¯­¾*ÞŸhm>dx§Çùs‚<¤2ÀCüaŽEV\ \ßeX^ă1×¹!·Ø©NÞySZ6jvÁÇ©±ˆOºÇ«èŽÈÒÄÒ_=mÜqVÁP!®ï÷››Qo톬ökˆ”3<ˆ.RË„Ò!Š"eˆGü™Ý$~(®RX ŒÿUgbNëlNÕÙ1×ã4/˯ І²˜hM´*æ ƒ†eÝ,ì¸`‚›P…4pùãb’@ã"XÜÅüf>Ý`¶i›e’#s Ž×§Œ¬ñ•©;¬Ž#ryñÝÌàŒdŒNª®’¯'W\õM`ޱïu’ ˜œnìpnÌAsœ©8@ï{$ðõ)o0öSÔ±˜¤ ÆV‚Ö+A‰íV´X‘ª}³^äTDTsÚ×9>\ˆª©ÑÒnªî·fWZµ˜R†bÈT•E{„È8ñÄùäâÉÎg1dw‰äåá:::sÊé1ärüÇ,»îõžGLxÞÔü€ýO£o³áíõñX³•W`úô×*¸ÈkŠXKrª“ÂfR±,s¯2Ʊ,q¬~/Ocœ'×ëÂqÇ*îî2Ì«,Ú}Í•d¹LhÙÎ Æd67%!ƒÛX°bI2Ä9D <äÁÛóA ²µÏ‰ŽiÑÖKÑçÏQýrÏ?_|Ê>¶?Íx¦á±žË>ù”t_ª|¢½9EøùçýÿßVÚŽ%ع˜’C‚³Ãe`ϲ³ƒÂFÂäXÛ#?âôj9¿éS££­æ·ä¢þ?Ìp¾?ÅŸéñN+±òÊÓke‘­idµ­kÜkRg¢""/ˆŸ‰ð‰ðpqî~æ?ãÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/vampire.jpg0000644000175000017500000000617712233761321024704 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ ÿÄ+ !"1B#3‘ÿÄÿÄÿÚ ?cr¯V½¯é/=¯Ð)×,ÃÂ8ÎY«l¥l£yVgSÓMÖÅW2ÌŒç '„™vÆN²CPÐFÙÙ+‰<Û¸Ä7`ý…t¨[4ÿ/Q÷µf‡|Õ.*«xúI2¬6 þm¥˜”ðRžUà&Ȫ 'b… æó ¤L$¶ù=ÃÓû༆Åpú›úî]w„4ÊíŠûa¦øóÈáf’~;@·XÁ{A­*Ð1øÇÉ·—\–$ÃfEÈŒ‡úõÏÁê_§uæ‹ë8V[Œq¢Úæ.¼­Ò7LRá¤ÐÞEµ°AÞpd{~̺o#æ±4<I€Ì^“+ØÌ[¼í¹ùŞݽxFwBg[¬ô7Ð f¹‘۸؉˜~-V‹,¤Ž%ÍÏΫ£¬T\yBJÃb€¦Ú<Û-Hsôüo)½hp½ÎžÅó<º“°iøcÅ?rVw ˆb-öº0È÷›ž*7™›c¬Å”ÿ`ö)[=e˜ÿÄVÅÄà`>=ì Å>ƒö·µó_éZ^ƒ—-íèEçÅ\"}.ù½ºQ£?¯mµØB±Ô4< Çg|÷‘ë£ãqç»ÃûW•zÔ´@®5 _Ÿv úÅd’&С“+ Î’šl¢˜W±KÐó;;A¤“Á ~µn3"8–^z,—S5ÎòZ^`öAN¯U®"m6ÂÆ®•¨;1¬ ØÕ,qå̘‡%/\[O~àŒ‰1ä­çZu-ò³à¯¦›eJïUÓí ùƒSÝt:®• 8èw.´*›ö:#‰\à”uw%”‰‹1Êø™MA±Ú£T€OiñIKÀ?Ó éAv*çžoxš¸l=U.üK´á”óÑZ+YSìúœ¹Ý¬Â .`=›*L¿âÛ‹û‰=ù¸£ç@5YŸU+*œ*Õv«H¯¨VkèT–Ò ¿Z0`émã)y´Œ 4$¡ÔñÄñŽ%Îq\ï>Œð­Ç¶œ,ø™îÇé¼£qôž7cwöÉŽ˜óóݶð63ï2¾©|Là-(ê—Þ~ñ©±ä/òüø¾ãï¨<ƒRõ^ÝN­ØËk¶³hC§ôˆJ¥¶dÄh5›4ó?Q¹j‰G˜¢)ãR¢),EŠ÷ï¥S_lóïÔcÕ^X²;׳/k ÿœ^l±µ-n€1`|W;ôæi³ ë /xJ†œ9¦ýÔªåÄh\ãpäu¦™ŽŠ“ëíèó®º6ªP_Òo÷ Ìšß_q\ï^Œ×,‘•¿~¥Mu•¯ì÷]xý2}Oõc™{?>¼CÏ}‰”¹:39)Ò‘i€ÎU_,LRÉ™ÛÀþÔ|p¢È~i®³ ¹×J &—Ç&_Vàç;‡Õ.ûSó ;ÜX‡4×q³2·} 1­¢È$Îjj‡H2p’ Î(Ú‚h©H0©ÎØK4~ÀÀSoC¦‡2t—F•bk,Ýp+\ ¼+_¡[=O„oU)×çUê–¢B]k’=ç`>‰ ߎ8”Âþ–^<ãÎC—!-\Û5@¸è¶ÿMi»µ¢¸Ì]†…(]D¶ˆù$O3Po&Ê­¡F•6»p²h4껹×à-c°¿Üø|Ç­«Ô¥£dÖ¬ÔV.Sé-6øv:£‹‰6ª^ÒT…z\U3÷eQ¤‘ æ×zßZZzŽþ=çÃàhÎoæ}ÉSÌnÑ´2Ö‡2íϨãFQ_&wKñŽÓœXìt‚•ÁXI6¡ç »pŒRv|Æ{ Ã©œ-ÚÌ[IŒ#S¼qè<çÓhB@hõ㥫ێP‚¬±gšÅS!KйQ?©“†)ªmµÈ+i®ó,×ͰxLJSé¹è}cTÏnVM«$™ž…Q7¬ÜÕ#¸-Œêéká‚Õ½]]† Ç4/“n"J–•á\b)fÚ[ëaÄ'ãÿ+ÇŽØ`hœ£U¿¬cÀœÌkÅrq67‡™O;/œ±W†N{/õéBK“_eHû|KοނW—â>©¬z|Ph¯hþ1s†®œ) §Ñs Ð&°]"‹Ç‰4B¡ÃQfňŽ6O¢'HmSb2ÿÅž¢ÖÈÕ»‹˜5S~pÑL”“Ñìs­ö u’³GÏIgæ»Xfu ´=Ö‡{e]­.MeÑäçÍ•&v»5·Í~ÍÓÿ]õy)½ž›59óa®›æ‚I8Ü(uÚõJ BsVsô·älâäÖ£•¶M1E.-hì6ëÈnÍO?·ÁÖ§Wm9Ž™U¬ —´gvª?²]BUÀ)ne¡‹vŠæy“Cp__¼H&{DXñaÁÜÉ¿Xͧ)V¦A¬ÉD1„¥2N?c5\JÎØ42~ËXã; ú]}¨£\ûHMM×àÎýWšßÊ«ÐÄ yƒ> ø‹Ì“ä/Ò~È·­Ò’Ó|—#-¢ÿ&&çéQ¹Î¨å4x¯75m(ö‚fŸU—@¢Z¶ç{e¦ºT¯Œè6oe]ïr[M~ÕYk´¿?B„ó+à™¶­ÒÈÜZôˆê—:k™ò4l×%–¬L‰G•òOå"Xr›¦éo@[ì~ÅÙÇ ¢ß„‹˜‘B¡ˆ™Ò5\ Iç®e4ÂOI—8´ÿÓ´i6TÍÑ-‘ã3Pk(ØÎaB¤ÓèµÚMmšý.­_©ƒj@Ó¤4¸& q¿6LUH˜ò!Ca.Ê}JzBø§WVµwáòyúB{ýÜç;ÿ±îÁý^º¿û9×8¸çV¯ºº¾w¼_{ù}û÷ûü>KáØ0œ o@—*Â@õ?¡A ¸í(T ò,q]* #}ÙÓ\z ,¢+®L”µ´¥Hw«‰øl±G{£W]$AÊýcE¿ ­‚rd•†¯ %Àcça  /9$( G?þ[Cãðø| *½fë™zxʺ ÚJ½oßBÌ yéÀÑZŽ.Mqå•.@ĒæŒpSì´ì0ãhRVM¢tÚ}B§2Ub|_§O mñ¦×¤:\{gUm¶†$\g™±uô!î›mi%×R—;'óOÃáð ]òW™×ÊfG$8øƒŽîuX’ë Beˆ±rB”û0Óh[ÊSªOWÞ«¬·ŽwâÎóýw‰ç;Ïñü·yÏíþ?ãý¿ëý¿×Ãáð=ýûÏõÞÿ÷áðø|ÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/redcreature.gif0000644000175000017500000000342512233761321025524 0ustar mathieumathieuGIF89aAB÷3f™Ìÿ3333f3™3Ì3ÿff3fff™fÌfÿ™™3™f™™™Ì™ÿÌÌ3ÌfÌ™ÌÌÌÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3333333f33™33Ì33ÿ3f3f33ff3f™3fÌ3fÿ3™3™33™f3™™3™Ì3™ÿ3Ì3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf3f33f3ff3™f3Ìf3ÿffff3fffff™ffÌffÿf™f™3f™ff™™f™Ìf™ÿfÌfÌ3fÌffÌ™fÌÌfÌÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™3™33™3f™3™™3Ì™3ÿ™f™f3™ff™f™™fÌ™fÿ™™™™3™™f™™™™™Ì™™ÿ™Ì™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ3Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌfÌf3ÌffÌf™ÌfÌÌfÿ̙̙3Ì™fÌ™™Ì™ÌÌ™ÿÌÌÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ3ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿfÿf3ÿffÿf™ÿfÌÿfÿÿ™ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿø¿$!ùØ,ABþ± H° Áƒ*\Ȱ¡Ã‡ ­@aÁbÄ‹>Ù¸1£Ç˜.Íáå£É‡.‰œƒíÉÉ— w¥œ3‡ŽK˜8 î 6 œ@îÚ¥r”'%ƒ¥C‡æ=J±1UJsOP(—~¥ §:»0iêtá +V®º20m A{¾^J4jÙ„+ ä”ì”+ôè)õì™§K˜†^òÛ]ƒyWp,h£ Éyž©¤‹ØªR4Z¡¸B…Š'¤ž”ü²KÁ3n Å(BŠOHPaE5`Àzu {×쨠obƒÂʪI”æø{ÅR4ùFÉ©þÿ–þÝɧE7¸‚¬ž3"åøuïúÑ«¼4s1Á¼µmv‰I{8EßFhùFMv2œƒ€ÅMÍáIlÜaäÔ’q„VoêGT0Â$“ )5uµœ'z08&Ž4’d*˜ßû©$ )¥xÒIMt0× çÍ‘Ý%Iµ•dCG‰§‚,0w^‘9*¦R™G“MT(ЄÌíŸCSªvš`-é¢J)‰¤GPã­–H*Ñ1æBБdÅ'Ò¤&ŽûÍ‘Gj÷Å)çe&i'Qs$fÜC£ÑgE Ÿ4y£‹¤ðÈÚŠÆI# ÿºÙ..$Ñy‚í¡éþ¨u*ا¡p[¡8¥"DߥuÅÝØe¦ `µAHVeQùæ\ĵ‚n*[o¿)º¬@ášchUÄBk[Ún×2:·È*Kt¹î7TªfEŒ6ìjÓ –å§+ØúßöÎ5ÔzIÖ…ºÕýö„zbäªÁYÐ sÁ¦°J CÔ`2È]èaņ9µ‘Õ€°Ât-üQd$Û[“â(èË‹ýÆ(Šqæ¥GRJ ëÒ‚rù„×˪'5·4u :Òi’±wž€ãÛ0}Ïù²ômÌ`Ñ0¾4rÙŸnÚ³m}Mh'báôöõ¶›ªyIÍ{TMUQÙ}…Ká÷#ýø3ã;±ÜùYyD‡+}ÞLo¸¹BP$˜µ n9zD÷©æ„ÖNåá G«'„V¸Ÿ­;MæYQ;d¿é{˜;µäïuvxî™?í‹{"ÿ×FÓ3ï”ORŽü¼Õù„õç¯ýömDêÆrWA~Aç +¤¾>Z{Ôÿ^ÈØ´®úöVÒžÀs$â¾Ê¡EH ËÓú"%¹µLlÛ{ÕéÁßõéjè þ¤w5Èå©‚£Ó”Ù G¨$<ô‰ OˆBú0g… ÑR^ÃÚð#;tmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/monkey.jpg0000644000175000017500000001733512233761321024541 0ustar mathieumathieuÿØÿàJFIFÈÈÿÛC   (!%"/#%)*,-,!140+4(+,+ÿÛC  ++++++++++++++++++++++++++++++++++++++++++++++++++ÿÀ¾–ÿÄÿÄ;!1AQa"q#2B35CS’±Rb‘‚¡¢ÁáÿÄÿÄ5!1AQ"a2q#‘$3R¡ÁÑð4±áÿÚ ?õM €P @( €P @( €P @( €P @( €P @( ÉР:îð ±â¼ð(Þ¾ˆÖJ-’iöÙtÅ1”[Å_ö÷Ó‘#ø^GÀý¨¶UØiÐÇð¼ûQlþªÿ°Ó¡áyö¢ÙýUÿa§CÂò>hWû|·|6!_îN«'&»xûê]RFɧ›tÛ‰YôwªóDIBQòŒèb( €P @bµ¥*Y H$ùPõ&Þ‘¸æ1Z D.¤èÚ¶ªß¹qG d»ÚúQ~õs}N•=ÊÓ¿“ý#Ò³é‰i ,x%¥Ý‚‘®bG¹¯I-ìû@( >uò$j–,™P–W ╨í[=èÒ~L,®»V¬]ülÉaÖ‘"1 ŽŽ,šÁÔVY­7 wöD–Õv‰tiK†èW)Ñbµ¸µä¨ÈÄ·êÄwë0 €P HgµË/Jžéƒ˜é?zàüÞ·B:îΓÂT¯ZÕßÙІ€ $'ßÌÖÂÎRrýLʼ<>P @( >Ðv4zJ«rÔK‚¯ iüH•GÝi‹m­×otN±¼»ºV‡àÈGòÔz‘ê+LáÒs™ü|±´ÓÜ_¹½¬ Ñ@('@“ØP\‹"\×…nQK):uß3ì+ta®ìé0xÕRVÛçÙ€”ò§µfY7·¶(=;Ñ´¼€>#¤‚OʉïÇqãÉʈò6†Ed£'ì`ì‚òÌŒYCù½uÍ=zµÿˆãSn§ñ4¡X}_á2R‹ðÌ6;uÝyµàËGÚô(´ q·ó (yB…Œ¢ã%´Éö1x7hŠ.$!æÏ*‡¯½iœzYÍr–Ÿn雚À¯€Óew¨Z]-¬%÷*­gí“øÜZåµÙy+ØèädliÅu_¹­ìêf÷/±Ê„•+”w¤bå.•äÁ½-Ÿ\mH?Øõ¬§ Aéž)&}a²á>CÔö­˜ðRêêG“’‰Í8ŽáÊ,J™7 oÂlï_:ŸPÖûì…~l`õ&V7O¤D§Y[vÛJ­ôYô¤ò£-’Îm>”Eæq/ˆ7u‰PÖó ~T¶ž† ßÊCj2’M×Ë£¸ÇgÎ8’¥$‰2¶ž¿†´©wë3ü¾wøM”N9åpQpއž‡:«EÈõÇqHÕ,ÛcÙİ1Ž;ٮαïên¯I+‡u﯒×vK£> ¤Þ‹e´4ëhr4†ÜCƒ™:VÉï ÛÕoeš»}š0 …r”úV—´ôѵ4ÖÎO „©äŸÊUÖ¶ºdšOË5ú«~ …!ZPéä}k\¢ã.–lM5Ø3%ø3•žUiÑäS^4šÓªVëšý‹F+íÉŽÛÍ() Tv´q¶W*äã/(å¯  Oa@W™dÏ´.ihrª;GáR}k|‘Ôñ´ú5u{³VI'ßʲ&"«ãÇ\Åà±c±½Ëz‘ñ>°6ZO–½Ím±Æ˜é?«ä¨ÍÌq}1òü3ˆy~/"íŒw°È -çÕùî¢QÊFVôõmš!ùœ}NÔõÿÊÂÁÖâ-ëÒ|VÆ–éÿЭùyª{z_'—dÎé*éîÙÃŽp¡·¤e2]‘!ѾVÔIGÌ×'/7%é.ßrïðü:½îDÖц٭ §5ý@ê¶Ì›lŸ[™sM~œbm†š@B#6Úd„è Òþ§¶N…Q‚éƒ!á÷ #þ+Í/ƒ>—òu&Ûm³Øu™0c«ÅRÂ5l“Žº^´GžRmµ½‘hÜ/ÅØuJRd,t•+ 56|¦D–·¢¦?‡ñâ÷¢%vÆsbBçÙ®r$0ÁÚ$„új­±9¨FJ?¥üû9<6UK®©u}½É¶)Çq"Ã*5æ(Mý–ÈŒà ªô#È×@ó⣹®Äs$ßD—–Vs#ññ2EÙbr\Y+<«){ ¬—+R}ng¿‘ä,ŸR‹Lµ8Äy÷éÇÉ–óh%‡Ô4­Êª±«&3LûïÃ=ÆÊ±Xá5õ"ã …)+ò#ÖŽ./OÉu½÷Fû–#¾õ¹JR‰øÓ×¢G¥k±o¹YÌÓ×zý‰Åi9Ó‚{­³ å¼ ”“^¥ÜÛL%9¥;*â]s—ð“Ò¤Žö–Ì •{Y×5 mž5´yÇöÇí\Nf÷.?ož”ø ò Zý;ÔnKN/¥ëe½ •9-ÿɦÏò ´{ 69’™še¤ò¨Cç\ßTìõbšQ-¹lËaBI9Kà”pׇˆãnÞoÉC3V9Á_t#ÓçQ³²ÞMª5÷KÇÜÆq« ¿RÍo[oãì|k#Éó©OEÁ ýRÞØûé¯tóåR+ÂÇ©ÿiŸÔýˆ7ò÷Ý>œeÛ~YÇˤ¶µYrÈ“å0¯¼e ê“Z]¸ŸMÕ8¯“gæsÛj7&ŒŸÊó,yio"°*[iSÌŽŠ¯a‹“/äÙ¯±Œy|ŒxjúÿÍ–¸›qÔãö¹LºžírÖ6q¶×>†Ñ.®~©×Ô“:#Šr&¶´Zq¹K‘ä®][ŸæÄF_ˆ’{”Gj7†ŒªÇ& gyi—µü™©2U<×Õ»báîN`Ëbl¦Bu/Ätlhî«å›Œ‘{ ÆÅ¸¿Ù•w0ж•ÚK~‹í åVüfkRôl™çxèôþb¿Ô¼ýþçV˘^¯Û^nJbǶõ½R?ùXdbÓ9)®®¯cV'#‘’ ¢õÓúŸÉŽêòÎ5µ2ÂÁi ¾sÊ4Gr~uÐñxñŒf·þÅ^FTmÎvÖ¶¿ïsÔ’TúˆòéVWw±—u¦£ÜÅ…©©ÑÜBË`(s(zV§àöqR®Qk}‹F;¨y”-µ…¤Ž„yÔfqÓ‹ŒškF«0HV?$Ý?ÍgÔMâÞ²b@OzÜtÃÌ^”g"¿c/Ü'bÙ(“"#CAI߆uÓ^•%G·DžÊœ§]²N?«É朿ñ¾°VÕߠ=+åòu5­˜pøòÊÊë›ý%ŸÅK<ì”Ú Â߀^0O’j‹ "¼n©Ëã±ÑòXvßÂ/éßskÅùà ád;U"*_Ód¶4ON½j7[ÉÎvϾ»”yî×%ÞÈ­þþ7í“Î%KåðˆYßCó«oÄ]é[ù"pñNRýG-å´,%hße ×"»=dz:gTZ:‚Ýl}þw`0¥ùžQY»­o¼»³[¢1]‘MgœO“d̉k:ºoPzŽÏZbXe£€mÖ†Òìµ€]›Ü¯õ«8Î5Çéò[áãC¥M-/õ6ã ­Ih±1{÷J±¯QìQbb© ³2ÛU~N[‘{½˜åßÀ$þŸæ½‡ê=ã?öb@zÜtælþð{Öìtšf3ðRZLw8—”<ƒ"Xû†Vàè€zt¯mþT¥8”j+ù—{®Èˆð2D©“y‰t¤yW!ÌZÜ” õ)9I“ìÒÿ'³ ¤&’ë‰^ŠUÛUWJºÅSzÙÑòWºqå4·£u:%pö“UʧÓÎ…#ùK¨ø¹3Ⲧ”wìöPʨfÕû£.àÌáùIKçüo«¦‡µcÈò2Ì’×…ìmŧ%ïÜÞ7w³-™·vŽ´Æß‹¥Žš¨N›SIÇÏ‚Bʋ޽ˆ“‹8µÚêí·nEçÚ!ä«ÜU…¼>UpVkìB«>»¦à¥ãýJšó]âSME ¹Cyðêe$s#—{;>ÕÐC“…¸mÉêIhª/ͨ¥Ù½ž–S0„-çÜvë=’®.0¦ r:FÔ ÊW|^ø­z¾AÚíH¤½®Š>ÕÓä/KÍj_.5Ï'.v¯Ò–‘`° uZóUVu6~“Α£.FssB¢°âÎÒz§¯zï8éÆ1‹“ö>q5ýª»=/ ™ºán…º·—|…kïVRô›šý‹LY½¤Ù/…G, ^ýÙ¯Qì<–.1üŸ•G—“•ä?¿fwð ?§ù¯aúŒ¸Ïý˜Þ·8I!@ƒ®½kÔÚ{Gv" žC¶¼µ’ÃI²Èg°R½u5" ÔÞÊÛkpêߺ(þË(ºÎ‚²ß) žû®C™®+S÷6þœ”¥»µÒßío~Ôs4è#^•G J2R”u÷W ã/ w5mä6^≆·•*QQ,ÇÞÕúú •}6ò·)¥¤—vr³ªŽ1896Ÿ¹YÏÎ3Löb¡ÚPëL¬ëÃ`hîjÎ8xQë³ÉY ܬ‹:)í¿þ~æïàµÕRË™¥E„®«Ck;sçQsyʵÓJÛùø$bñn-»%¿²÷$÷Ùæ¶çÙSœeð>ì(ìPéüAtóVѶÎ/=´Ñ_ļæ|#½ý^bìNm:9›p{*´•|­{ƒÓ_©~#é—x¶]Vœ†ÃžcOxRCAÔéøÛÒóC:28ì•8®þ̼„ᙊÞÑÒµ[aYá˜V–<€ï^j>¦·Ýu—OÔµýLè1qaZ„´a|š›mŠlÕ,#ÁlO™¬+­Ù5å±—w£T§ðŠ‹„p]»]ïWG¹ƒHiJRµÜŸ*ï1hŠŠRðU)NÇkðÏ@pªÞ«n· *S¥@y‘ïS­žêé~KœH4ÿÔ•véQ‰æ~ìרöKþÏÊ£ËÉÊòß³ ¼(Ø$ò!K=:ï^ÃõqšüÌvÈï[Ž˜ùCÓ‘”¥âäW‡3  §Ê¶Òß_O¶7E8oÝO¹Å8”Ó‰-DSÝ}9IªŽWÕ®Q×7“ßê\QàŒ³b[ /¶6Hø|ŽëwTøë%[[ÿ¾IGø|¼ÂöõúüÉû••«›ùÎozùUÞ- %¿ 1¡+îvIolôÐ(KlŽVP4„ɲvuËÉÑÆ(W†GÊð½û£æ|‡­zcä±q~o±ØçAA×cQçäåy zïOfÖ±!LÒ ãÜ[”ß3…ã®_ôÖúÞû'zN·ÛEW›çîZ' %W|‰} 6–½ÍJ®J¸·­±“‘-tû!¦dÜ𜟈wÔμ>‚ha|ÞýGaªÂ™¸7e¶@Žª~µ’îý‘ÖŸô‰fd9Q\°!l>’’•ô5«ó2[é1žtvºQà%¥›¶k*j˜åŽÀ+oc¢ú çyœùãÑÑ2òoâ#l¦ã¿ƒÑkQRÉ=ûW–‘Ô¥¤|¯@ €%E J‡phÃ[Z(_¤‰¨·ˆ7fQ¤ÉO+š6+¬ü=|¥\ ýŽo™®MF×áv%öî7ã6Ú²‹i­1nUZ¤ü>â¬ø¬©ð𦉾:TÔ¹ëOTŸ>SëS¯»¡(A“ò²c Æ¿/ýVÜ2§\»ä/<–Vy‚$­ÓúùW/ŸÊ¸¾Šžß»ø'q¼¬jÜžÑ~Þì’fØ…‡Æ$É€ÉúÉF¹—Ö S™}÷B}¶Zdqx´Qek·cwôp@ÄÅÏ2ž;^«OâüÅû¸zⱺýÛ-r@®x¸ÑÈ–\P*W+Hyœ:ß}#\¬Œ~äzíšc6€¯­]˜.$éhIÙ.œ‹^”YªÌˆVÚ²I‹fQÝCg^qKì ´Aô­vb_[Ô Ïh¿ÖNPÓHÜ8ÚÚ#œ|'²‡cQÓFèÊ2ð´:üJA ùë¥{î™»éìP7ù·+ƒ Çr%¡W.—£ów(ö®²š£ëW‘BìÖ™CtåU6Sößtu¸_†XïØ«“.(Z¤‡Jva[y Ûi»¦>4oâ8Êrhê’ÛÙ¾¹p¢Ë-*LD|*Qìj9L…$ßtZYÀbúmkOäX/ùò1i\‹KÇâo{BÓêŸC]?ÉÂŵãÝÄê··¦Îñg¥lרË<{µ¥aÈòGÀ0¯J²².ºûĺDZ[Ï·Éaá–—­°V¹ZñÞ<Äy¤zT;$›ìRr¹p¾Ä¡á*ÖU {P'8;»=YŒtËŽ¯c Þúò5 =Î4¾‚ׄ®¹åÆ[ÛìGe·Ò›„‡PÌŽdt>UÉÂMB+¹ôm NOÇ–Aóë´,‡‘"Â’!RñTªÊŒf´Êìåœηµ¢ ÃÎ'ÏíNÛÛŽ‡¢¸¾~½Á«œî&¼«U’~LJŸè-5µ²ÈŽvÆmhq¨%ÙªR{$Õ$8 ekRz‰iw-WNá½üÅß$Í3âB¤*sámR”üÍ]Õ‡…ã[+e,¬˜õ%ÛdÎÙÀ¥í»sžKËNÔ”ù…Äu×wxn™_¥Ù.çC+༻tS*Ç%O-#e½õý+Úùú­±õGQo±œ¸}AÊ©iŽñ&ë\Û±eÊuvòyBžGçæ+Ìî&›àíÇòkÇͲ‰ôdyöeÏ)Ç^ÅÉ¢AmC­sSľ r‰u^J·éMl«8ûdn,ƒ“6éB¥ 4ŽSÑuÒþȲP)é"§“Ǫõwõx9¸(ÓˆÂ\æN¹%>â´ò²Nþß¿áäÖ:oä”F¾Z%Î\%¡RÒtQ¿:…:,„Tä»2ÞœÚí±×¶oí-Þ1 -È!+ŠÞžÊoá=:ÔÞÈǯ긪نÛdýr=¸†þ°NüEö©ØzJYv-mx1Ͷ6¸âP¶÷Ý¿v[­µË&?Å+p7Ô§åTvOÔœ§ìÙÚccƺcRö]ÿr§â 3Zò+T¿¸.ó”óim’î*ó 67¯Bõß_Ôå¹.:x¶<ŒVûwoÿ@pK8Æàßrxên:~Ø#BF¿9ö¬*áõssJðgwâ]ãzt¯­¯©ü~Å÷;1c¡ˆÍ!¦P4” hò«Ô´´r‡-z €P¼›·Ý$;>*| Iå)è’¯z«Ëâë¹¹Ç´ŽƒçïÇŠ¦}àysÈl¯Ç¾Ûš3ûšuPJ›_‘ÕmÁ¦ÚêôîîhåóhÈÉWc.Ÿùù7˜—[µÇE‹ˆqdZn±Ð9u²Ó庠Ïà­ŒÜé¹3–u½?†X¶™Ñ/~»kÛñ×½U‘•rèšÓ.Õ‹·ßàí4‚ñÓjoþ¥j±m/s)ÉAnFKahß2šéè°iµäÆ6Æ^ ]CqÙ/L‘†ÙZÜ#.¿ÓÜÅÜ»ô­è¥x•ÅØ¨be£%Э¡RAè}u].-ÆË^¾Å>_/ªï/’ÂY·ƒá﹬¹.Ûí÷û—å®Âû% µÃqqÜ<‚F¾UTÙké­vù:Ì‹èăwI&½½Ù9¶ð–,Öý©X”¦—¿ àX÷{‰ÅzoªÇÜåyĽjUãÇQ’÷-ÑÚŠÃlGm 2ÚBP„ ØWMìäRK²9hz( €P @G²l+Êeëý¢,י腸ž zoÒ½Œœ^Ñ䢤´Èýß…–y—(`©væ#t1£ü(_ÌT,¼r·Ö»ü–#v}ֽΞmÂ;~Imú« p½øŒžµ„ÅÅŸ^·û›²9œ›juüšœ°íL¡·/— <£©Z»Ô‹øÌklêéÒø0£•Ȫ¯O{ûš{§ÑÂßsžã²²™Ž³²Ç7ÃSý,xé×ZD+2²lzsìϰ~Œ˜”uó<ü§µØZ®„¦µ£,kcUŠrV½™jc˜EŽÅenÙN0žåÄìšÑV P‹Mm¿-“r¹Œ«íõ:ºuá/߇ b(e‘Ù(&ƵÓ¤WÛu—K®Ç¶sÖf±@( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P ÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/melon.jpg0000644000175000017500000000740012233761321024341 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ  ÿÄ+ !"#A$2ÿÄ ÿÄ< !"1AQa24q²ð#35Bru’Rbt¡±µÃÑáÿÚ ? ÞZy©¾ò{Çÿw½¦ôBoéº~Bn¡¡¡nUº«êâ³G_ŸÚU‡ ´µÐÐkéA„–DD¨T„†_ËUÈ<£óÏ—ôðÒk2c—ìÌ€ ·J”ÌyVy·'i¨›/VO¢1EF‹Z¨O‡1l…¹BdÙ6&c)aø¯ÆuI¼w²¸Ù°Rs6ªÖãM-Â%J•cakòºáø“úù ±Òô.¸òpí^<{ûÊÊ®[Ù¶ó0ig¤'KŒ:àe¥pZ¸­cfAb@¹‚cóåjUÊ¥ý&z½Nÿ;ãY]Ç1äoÇÛ[dÚ’E·)ÂåÒK9ùÜÏSèsètU•Ú-¥¥”fZàyCzïQ6x¦ÅEŸ£ hÃx+¡ËÌ/šñ¬oyÌWóý¯"à¼6»•‰„«ØK%¦k7ä Çg­¤±ãXOIÖXM©7õǰ=H–Ïfg/íºWøÝÛlÀë—x §d7»n÷ q#F¹ ¼6ƒò1~5†ÓQ•ÉUÓEc] 4Þè¢sPî¹y7UÄhm.0µœŸŸï Êª×u ï*o?ŽÏ>%ˆRM^.¿u ¸ÉÕ—AeˆG[Rº#&œX¾¬o¥1ç?éçâÿK­/‡Çx¥ÕÇÓUKÃzöw¡ònÔáéîËÈb¬tô×\»¨ÒÃZ!Òs¶côúù%¬H«l¿l×HòÅ ¸í/fv†ŠhG©Áq5‰*§Éˆ—S!ô¸ÔŒÏ0ÃÎ&3Š ï,¸¦Ð¥¹`݇Vé0žCm°½ÈëHr 0UÈÔM’7ŠF7L¿êÿÏÌçA‡ÉÚ|!QT Hž‘N9hƯg|ò@ôbVJ$ ®†4F1¾\¤ë¼¬èÙ^Ÿ)¤×™K¡Ìhn³×ÔÚJ–WÕ7T¶DÖÚV]ضîfŸnÃN-‘­–T(Ȧ$zIòSÖöŸ&° Û„(‹BH"Ìb:ÇŽº/y¾ï.Ð9«†çýþ~8è¿)æ×-êËSäÕ¼ŸøûÞ:ü§–õ»jËnÕãÿ0}-½…W&F"z—cáÙWÕ™ªÓlë¨4®¶¿" ÂË•°×…-Õßúñ¼’;jK­‡Kî÷÷•°v~Ñ-z\¸Œ6:Ç[ÕZíhk£ñý5ôÖöÑpÚB1šíôôXΪºžŽuÂ%>ce='ñ4ÆÔ÷3͹ÀqÛPÐiu}ÃSH"E+>Ø(k´åÇö"#öÀXíŽxÙ"K›/3{w7Ôsñ°á‹Ò3zmF’¯¨ñ¾‰î^'ÓÖ.*F³ÊݸºéõàZÖgŸÑ† …‰8âž“´æ>_Yß™[1Y–Š[‘Yú¥VLéì8¢ã´ÚJ$D‹A»¶¸ÊyÄ¥W+Ky‚–’)¨ûÁ¯IÀéw9'5€#E˜€UÖÚj:¾èyÕņ}j‚³WØûÿAò_”ÿÉÚ@b¬£Ïj-t>„*À±´8ß䜠|CÝX6WK!ϨO½#¯¦é×À^-Ó÷Þ/QÓèÙÚõöEë0­¸Û”õ*Ðé³ÁØ÷@§˜:Kvv† x¦æªT,]}-p´›Ël­ªtz]œª†¾ì-T“0ÒÐl˜ÕVqu\…“±G¸"}1"{!A™dk¥GF§ß–[a¨í8!û…ä£îaâ¹[K»b˜QvV&~ê®ÆÚ:DYV™;œ°vÌ9ñÈ뚣kÜ’G_[βvN§;e6ø=ÙmS«±+°æve¤°•-…1K! a,ê|ßi”À'é4¶žmõ[x¬ä“` ¹êà:Îøhzoù…uˆý6¤™ó\o£KÍþÇ0}ÿÄ{Û©*/jnò{ÊëÜÍÕ-.“aŠÓè2¦ë6Y¬zÃJÈÖT󼱊â·ÈîEÍò}³Æ?$7<ûm¢ãú*ÌN‚ÃZà÷;ïÆ5ô‚h9~»¡$4aR×™{Z]ž?`êðzí%QD¬¦½bRÐò§Í®— êýÓ›6Ïšát>×]ÀUth<'K‘»è´¥éˆ„YcAo«©m+qš™|´9ÊÀZOãG xÕŽ£¡\“ä‡]ÝEi1¢ê¼|â:é¤mSɳ¼¶¬¿žñY‘²´•‰²Í$«+§tÅ•îõùû$IØzÎÔRŸ‡9åÆÍ1ŠÍ2Du,ÏnbçÑ[i®ö™,­™r¬fÊ—[!Û©»àš» ª-8¥*æù‰$ŽÖãK\+wBlMí‡yŸ*¬‚Ü—½/’¯Š0²ÙŸøê¯Aûw8# J/ÏÙ »üEdb×þ\Ǽ«/·ûÂéfz©éDÔîæ>ª°éË<)¯¹‚B)½„”‘£šASÚoaÞõ‰=¿éèôÆ–Ûd¥ óž´r¥#Öe›Ø$qk}uçqˆ3¯ö•úûÅ|ÔÖÑÞò.1šd•ÖTÍÐ…Y­¯”ÀʯŸeûÍmÈ1C¸²³ZãíªÚ<© ŒµVDö+Ü®¯]Î[ù GY‹ï'j= r”y7÷úr`ª$U>iKzÈ«D­Eö¦lÅ¿ÝöD}KŸ}œŒ]Pö”1ÇÍû=´6TÏ„sÈ–VôÆ$bÛËY_$ÿr‚®bghÌi’*Lé OR×%k.0:1̵¬ÓýbxŽÁO!Û2YbÉb@)ZQϹ—ågË(B9!…NŽa´³U§ÑZ‘X-¡?xÈS%`å Ñ@,¨åUÉ*±6¸–ÍØ\¦ÄÛŽðõ17iègÜ¥¸£Qjµ/$¨™M9ïš½”u›š(™¶ÕU³‚…Íž²šÊÛf“2(¢Uö³–:ªÎÓ{Ÿè:®•W'T AT‰L&o]y™¾´Íçt,°¤§¨«»ÂIbÆ.…öN¬O¬ Á·Ë%ˆºÒô!Í]3t5uV¿r_P š|ˆk>ŒDÇïZ4elF±B¯_ƒÅ=@7ú«ù¼Ÿ×ÁvrV"FkÞBœ|u€ÔQå¯è©«-ªœ5{ç2J{à¢p“O42µæFLEˆ¹Ó£íM e=Ñꄢɸ-¸ÃÌ›dŒÚz7$Û…¬GH x€Òô’~}æ7-OCÕ¿½8e$¹-¯'´å˜Ô©½ƒóõ1ZÚè/ -ÏAÐX8–“‚±4hª ¯¯3ç îö«à[íC -_#€†òûˆŽUäðT QÈʪØ¢.G¼k’F<Á®#‹ãw3ÜÆ*4i•®Ý´Ki7\æ )JfSô@>êyŒio ÃðÑ]tR:Ib£IlžW:ic¯w«'{V*-Ú Ššëzù Ê7ð[NtåŒ@N‡¦>²1Ñß9Ö½&9ÈHcF¢§»îÍAŸMaM7ôÔ–›6@EŒWªSr’.J™KŠo¸¥kƒÌ²—@÷…Èݸ½¸pö YqôoH!F˜:"E"(-÷DF7ÙúÒz=K¿ÉAþ•UÐÿ”Ñ(“*Ç,ÒHÕ~—ò¬{Uª¿÷íèõkÍÇ:¯—_Üññù°Á~䞉ý)ððù·²òe’OؽÿQÿ1n8‰B¿äïÅ–ÂI0;ßÞÈ,A žhÕ²J@£Ï#,1¹°ç—ñEB¢Š8ÉvŸ9 ˆd벉fj$‹€åÌW|K„™â$dÒ5Ç£Õ˜þ¿ó:—ĬgQ½qŸŸ¼16äZÑk.Ü3Z;¾žrx!_¤Õ6Åï5~›cÿ6³ÿ”gôDøÿ¨×H…yCºŒ–0–WôJù@díI˜ °rWº ClˆäH\ç,O…èÕÎV**¯¹èô“Cû{l?&«ü ÁX¿X÷ã7 8 n¿ˆ½°Ä×–îBžØØŽ%)Ï!Ȉ³=Ī®‘\«:¬ª¿Q~^±ÿbŠ…“ÿ»Ár7NɿѳºË°Vb³5ÿ$‘lDÕz9J)þ¤iñôz=9l¿¥EþïîSðf?Ö#ñ'áN‚d2s"M6_;,²¢I,²RV¾I$z|Ÿ$pÊç½îUsÞåW9ʪªªª¾G£Ö¶9{¿Ç†TðÁý1ÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/aly.jpg0000644000175000017500000000667412233761321024030 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ   ÿÄ* !1"A$%ÿÄ  ÿÄ> !1"at‘#56AQR¡²%47Bbqsu´µÁÄáðÿÚ ?ŬQ¬f=¬ôVOâQRNG]\ôòfC“S(ÑV[u©…!¥ãLJ΅éÕ¥4u¶ÑUóÚÉ CՖ׫gÏØ•'!k æ÷±ÈÈáÒ¥™¶erú™)â[Ç‘•ÎÉpº½5<לɮÙd&1yk8FäÖ ÀYf–EÀÕ‰vrá(!a3èmÔí‘Õèn i“îdØ4¼g?ŽßT^îŠAÏrP"ØP_²0éfAxšk݃ð"I’ÚÄÌ#+ÖyÚö~éã÷:§©9Æ ¤ÐâÇœôyÔÙC¹l˜<âÆ[˜ eUºÙ¶žfE˜ø«è,K!Di­ûJ°íó\tT/qª:‚ vc?!0+ È̶úÑæÕ^DDW‘Òò"oû*_ªf—±Þ»xÆCÛo«ZODUtX–3‘†˜Ðd¶7¡*AeIu ÙlÙ\ØûÝ&C|›n°#¸h&Ú&4.9«"su°˜üš­ºÝËia¸Ø¡b±XÇ®¶JÅz€ûN“ ,b A$Xžd&ʪ®b|BöG~¸ÖÇ=o·n`Sh ¥[–”…,”ñeT3šÍk#Rå_C þ :C£± có¯ûqÔêÐH¥VÖÎÄï…qX'-ØJûO¸QY’Å—"¾"i÷¼œ‡]'a˜?vzX7CŽÒÕµ:½^Ç®éÝzK“ñ#‘ˆå̇I²b­¼Œ4Š/ á§ß£Ö°k%ŒÖª¸Û³Ù=•ÝùGfº^±f•L”X±ð+|ÌÙbÁ¼U…®%UW J¹Ò&½.di/+$ÛGÂÆ±,F%F¦•LWa¬xÞ=' d V4Ü@ýC¦L*¼B(*[m¿ó­å ¤qV)¿Lf¬ßÉ ’}ƉR”IHóȨ‚ªsí$I‘PA<ׯ6(ê+FêÝa“'XÔzyzÊ—Pê(”;Œ‘‘•ådlLˆYX%L­UÁ†"°ìˆ×2Ó±IÍYØ´å+.¸Üùm›¥ZÁ“¦pZU%2E%%URUÝWuèé–תqUÇha“¦ªnÇŽJNÉ’’†êªJªª¿*¿+Ñмk½oãhˆˆÜ#}£ŒGÑãá÷x÷nÉøs=冯INÒSÂcyžÏ÷™Ÿ^rQ´ö~GMšRåk«¹V³Û\VOijºEvÿ:ÖÑѱ¥³ ÍêÛÃ&)±:;ÞXÁ˜«j@«6cýµeÑk1YÔ:¼Z¶ŽÒÖþ›ªŒ÷ä¢Íµj²”·Èd©ÚIh©…$"; ãÅyéDÊ!>â­ŠÑÜÿ(Å¡3aG9ëªKZðz3Œ^XìJgˆ²ç#’si‚²€{‰‚$ÊãÖ9Œc}“}¶ØIqä°æ*ºm4Œ;T€H\Tq@7ØwEêáå5vZ¥¨L#J’æBmùã%°ñLªÏGtvg% ‰&Fܧj»¤ü’`2•Ç*ûyL¶M°¹ '=’bXѶ-{RY6O(l˜p.$CÈga½õ.Æ£"È4öU£ÇT³A).ª¬¾‘Üñós›‚$s"Oƒ¦Õí*¤Êi±r²%•Ýc9 w“ÂN+çuh•ÒØ”Q¹¢ª¯J…é©|X7qt¶Bc1ìáÛR—&•Æ„ÜlmGtpÐòq1DM”nŒbf{‘ãõrh£3PÄ™Íû+vׇ'Õ¶E%Y-#€ÙÿœD]‰zFg‡ü¾~(œ»NEkJ»m|vî"‰“Ÿñ‰Þ7陯{k-]ÑJÄc“E‡aÅ^I”ZôJËöŽf¼â;ä¸DOÑ=fŒìŸ-™fxôHò)á6$´hão)!"‚"§ÜwTM‘y"ì»oÕ»Ñ(˜ ÷ÝF›mµ$QTQWuûA""O#5DÜÉW¹Ô«½Ê™µ¤°W~F¥)‡@ƒ(ÉÇ\CD^üè(;§~Ç¥Â,.°çbbÙ<#¬zAHv®CÄ ³i¥Gä~åÆyñQDCM¾Ó¥½,=ŠYaøYT‚{%4#ne>ˆ‘ qŽQ¼NÓèøïÔ®KQ#!ƒHàDjßjEöë ÁfÆ/y™!oÒ;ö!-†"">iÄvÜ6ÑIP EU”QUvþíÑÔĦÑ*–༗–èô—Órú^ŽŠçŽÞ~$<~Ñ}cëõ}Ñ¿ÓÒö3·b"%å¼mÜ>=Ûÿ¿þ‰ëÍ+Óç*¬¶ÉÓG3~ºÚ²[Ö1æ8M,ê•ÌçRµMdC„ €¬IO Žý6dLCO1 É.Ãh.f×Ñ=øÇ¤PÖYÊußoÍ%4§Ù yd•¥BS%]Ë~“îß wüŌ糓eøÝ” Š;&çæ@m½ÂR'ZÇÄÖØÄ[4ÚGm@6Fhìw»ÊdÚEŒ­="Å:§Å•ú†O#–RÅhÙº¿ŽÍ›ãíJ‹Žï)ý:«{ îHäwÅÜþq7!ÕKëÓ-.nTØØ›éµL…†11œd×ÙU’L<•I3i¹Ò'>’ãV²Îè;›õšÖÜ3GÄñÎÙ±«HyW‹Sعg>ñö ™¯]d6`ÌtŒŽÉê«IÉ÷. ´qAU”°ìÁëñÜ+‚¸ÎŽÔâ´Õì¶ÐF…¶3b‘€ZlÑÇ”ä¼h(.8îëÈW©ŒDÖÅγÌö•âå—XKX$.M˜L%$Å ÜåKÁ„Å k¡l{W ¬VéŸÎYJéÆê ÚîÅL(W²°Ãá[ÅfÂ;ŠE›mÍ|{N½j˦Œ™ÕK+¿åÊ ¾ž&¶ˆÒ§Œ6Rh•8¦ÊKý%þ¯õwèëõ#ŽÈ‰·××óûÑ×Ñ^ÑñgáWîÿ߿ܰ–"f}ñûGõ¯øû½]ÞgDSˆˆï¶üQ~Jª»ì‰¾ë÷¿ß÷®»6¯(§›Y2UtÏyŸwCÑ$øxƼñÍ·|n""sâhˆ„Šˆ_ Yós)ìMü1Ö›tëK^Ũ'­*È¿é£)cÿA¡Pu&ÿ¶Ž‚¶Ù¨8ùÅLÔKtR%MÅ)¶ gsã$(‰;ï8à ”e‡_Tq–¸plÑH•I9ÏÊîtuG´÷È9olo⎽)h–ðÿËÄŽš‡Ò»—6¾¢® Érà¹.\:ø‘¥Jp’ÄIɰÈ:ñ’ !†D¨ˆŠ»"u«tfg6G3#ÿlö%/Ð ÕùUýAH”GèT‹dM×££¡?¥ØöçÿÅé;åƒç¾gØkÿK©ˆ‰‰ QvDßë£¢N’½ÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/boyandpc.gif0000644000175000017500000000235112233761321025013 0ustar mathieumathieuGIF89a@@Õ!ÿÞ9ÿÿÿRRR­­­999sssRJ­”)çççÆÆÆŒŒŒ91Æ­1scçÆ9Œ{!ÿÞRsc1­œkRJ)RR9Œ„J91!­œRÆ­B­”9{{{Œ{9­¥{Œ„c!ù!,@@@ÿÀpH,Ȥr¹8‚¨  5¤ÑÃË2¿E§8Ñè*hÅàŒn§ACLOÀÄzÂpûÛ TmTztI‹ŽtPnqŽ‘h ‡n[G•b›™sz¢mtªhxCjnh„  ƒ º»’´yN  ¦hgÌÚÌTSƒ j¹°QÙÛ`cXƒ]å } õ  ݳëz¤mÙ…Ï›0 P© ¨:š”a*@±ÀIH`€J.J‘‘zH.h#€#¯~L>%`°²6S \ XÀ¤ÿŠ!0§Î_S p ïÅ üImvìd0ehE`¡ÀÔ¯H…è'ÅUŠ‚ýÂ/Ê·oWr«²Öˆ(RÚÂc0×]]!ݾ+'±©B[dÔ3U„)Xj¶Y€ðM4W‚:Òöèf€z…'Çòã±aL‘LCïÒg¶ŽVh¿œ$ù„RŒ¶˜]ü0"š–ŸÇS»NƒMNwÒ€ãÜ~`Yžn\¾¼!i™G¡Ç8 _©EBÀƒ2à ¡izo@lÐ4_UçÁY·¯ü$™€Ïá!r 0ÀAJ à‚ °„°5üב 6¨á†êçÿŒ3ùÇÉ_Û˜'ÀýM“P.$¶èâ_à 1ž¼H‹^UèDÀZÄÅ…W6ãPDI1^‹²…à£ZG9ÏõÕ’‹t8ÏçXc]tÜæÖ”sé´EC2 4R\ƒ…’Æ—u€U‡–Q@É—Kjäàg‰l0&†’h?ybß»ˆÉª”‘”D™ ÁwÔö"8¿ï} îE)ŽáÆ+Ñ£‰ òÙ‘Hæõø-ù –ò—…æ<«Ÿ øÎ7Êp ž‚!y¿!ñ[á…Ô)x–^r7ÜÅ-„\ŸsÚáiº.aΑ-¬n°6ÚŠi2Û²±¹4ê}´Ý,z›8ÔPãÁ‡3k $ûu˼jþ:žFÌCæüWâŸæ: ;i¨«mõcÃM4¸o2UhÔp«¬ÚiŒ™M 0Âò}£@ÇælŽùï—ñ¼sŽ/äþ‹–gì¤9º\v»U'®­sNñ ù¹ 0V°x Ö,ù…$HÊ7<>êµ:O8 ç–ý¯„t»XÖÙ]çå7Pçwœ÷§rÍ.7¨‰ù*ìäãh.ÒÆƒ*ž)ÌÛë K²ÍQ²Úh–š{…%ƒ¦œ?gPëÚ·Ë<—™°ÐiwÜ3ŒRby>+AB<,Á>eÜf¯ÖÆÖÞÔñCä¾ú ®ÒÏ»exŸ‘žmÄßó ’Ý3ý u[ ŽñÊ•UWî \-TqyM«üξDõw—æ9îž¾‹K,"׿C©‰z8qIS ©ªö¹Þ”±¤$zæ5®V’y,úŽ_îϳõ‘ê4fsÓæEr#\4_döOM‘åœõu¾Bù箣‹·?–«ñšçáçàõ…ì²/@¸Ðhõ|Úó¢@|je­JL?Šêã? §6;Qì¯ K'ZÿŽ×Ãs‚|Fí¼àÈyŸ‘g•Áp&O²¤p…s̺¦úÖL=ÎjHGWMÙhÞÙTógÂ"!ÞŠ [r¸m!®„ÅkÞÕc¥…®j£•®j½®jþ•QSÙ~_.›jl'Iè8ˆS$_CÆî5™X—€u,P]FÏ_O¨°b¿R0¬E “p°È7f¯£Ð{JqJ÷:9XWÇ >uÿ•U\·Ø~ßú2@žËî㵞þëíéºÿŠWpåò5cøi×z|¼_Z¦æÝS HÝl¬,­,œ<©u}º˜G­›ó`†ƒò•‘¬Äk*öÃk[(Þ” ¯jÉhÚ¨¬r¹©ò"~¾V¸Žo²{û+XבðÄs×úµ}NOÀ¿áÙÊ|ûê~FZö.‘ºå4~7`²:l¾«-e—¨‚Ý^Úîß?*·M#\ÒÄ=\ŒüIkøèI\²HöHµ³Xþ@m=}7ƒÓi;GAÜöO:vç9[O”°ñÆfß›oyû§°%Qw{kN·®•³Mt(°¦ÕJ¬‹ ¶·”èãaÞçbí—ÄwÇã%â½Vƒ ÷ ,U´¨í¤-53‰ “d)=s±iÿ &U8kkO@Ù©4Ö³ìy1¢ˆyd6ðNÍÒ9gBïÚ¶à5rh¨®ñ¸´é4OÖ”Ôg-h©fã£ÕË:ˆ“+Y>dÁÀœV9Š™kÃíŽF¼£,Qg,䨡ž)6ô.ú’]Hí%E%•  Hn‰%rB¤w¥pتGú ÿ){¯!èšIΣg¨ºUŽP<œò§ålç^{b,«-1ish-+%š¶CA@ÛȵÖpÉïŠ !È|Ñ‘¦Ž}†gÁ}W“]?‹¡Þù£¬ÒFåYNm‰ÎsÌ•(àø«¬îz&W)Ÿƒ^†¦…g]¤”³%F—k6D™l¬§”®›)T¼‹ñ´ì¼£íaå¸m“?æ¿Cä7ðÍõtÆÀgQ·ÎÍèÇØÂ­f’Ë-E”ZË@:_Ô+ $21kå´ ááWCåÜó˨™ŒíÐÓx»Æ+<.ñ¢‚¹aÅ©.^>Ço0Œ•ð¼× ö[_0~â\.’òßÅæe²%e¦¿Wgmh±­lt—³ìã̲Áa2ÒT‰¡•Îa£É’‡X­pÞÖ¹ªˆzÉ>Fa)ª|„îÕT÷yi—§×Õ"Ïëamï#A0gÆ1#M"ŒO¸ä $±Èa=Ã{\§ ¶­ÕY—¾–ÅVJ:—KU[ n}£†÷0ÉìF+†Ö±Ê×"¹kWݨ‰ë}ñ3%Ñ|5<šJIR)Òã¡ò[%QË_ùCBÀÛl~ÑÁûÒD,ƒ’+äýWG!Œñ+G«G Žîs¥èXªªÈÁ¯dfªª¶;çÍWô&¹ä#ÜÑ£Q^÷¹QUÎUÞ¿bÆcA01À)l°²P‚1Èb¼õõiØÔ+UÉúr£‘\Ÿ¥÷ôz=³øÏ"E!ð˜h@ewš»&†!_M×ç|:Û“?«hÂæ1ºJ"K–JkÄD´¬|©…(1ÑMÆŽwb9˜ÅPÝù=Èó÷!R=EoC/¤¹•If5_’}D›yµ‘[) ÖG4âÒˆò¸ôz`ò†š£?äÇ‘445U´”TÓ­ÔRÒÔA‹[SQS[¿ÐB®««®„ ﮯ†Ä… C,`ˆÄ61G£ÐÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/avatars/bert.jpg0000644000175000017500000000655112233761321024171 0ustar mathieumathieuÿØÿàJFIFÿÛCÿÛCÿÀ22"ÿÄ  ÿÄ, !"21#3AQsÿÄ ÿÄ7 !"1#Aqt57Q±µ2346Brs²³ÂÿÚ ?¤×M¼k—9[GШªlØØ3µ#n%Sc–¦‘.¡M•½~¦È’°5‹ŠR'ô*â®3Ö8Ï@Ò4Üe*4¿µ5ª4ÐŬ½pi@Í»S_Ê~ëÛJP–¥Ï‚`¦lL2£ß‚Þ2ÅmÝGÜÙ³UÚ4ìC2Õ¾Úè×{Ž*}É›2ÚŠ0j”ªÏ)¿q‹ÚûH@—z©ë³‰ºHÇboòL›nlM²tqXÅ%×Þªƒ]‹^,€¯ÜdTÏiœ¨©J^ªñ?Òb¶ã¨um›DÙ©ªkç§…ëÞ‚“Í$ÕS#2ùe†G'*##8â€åý!¦¶Kq’H¡Y‹)–fªFžBd•ÈUW#b©8m e‹]?*rÒ±èƒräû¼*͆wLÚI@µ w‘ˆ®ÀJ„ÉËöBX°kÁGâ2â‘7¡…^¼)pcÚéÀ4~ħÆ]¦mX=€Ïu°@+¼ ;oüçq iwöÖ——˺£˜›xBŸ®×¸Ì^`Æ-L(‹Y±í“BªƒJ…+6åù¨å­Ý¬Æñ.­Ëc“;9cªfB¡]dUsbÈHØh~Æ©ó>>Rº¢\™æEpiÉ-ñšç[KI#!²êóõB¹˜ô‹¸À` mÍÒË…’ïM4™Ø±Ó j¦fVAµž9rä·O»’åùá7˜zsä'©xì~z¦,ò´îÛEzäëX«,:³àºÿfݦª=TÉF&´ƒÌM4R'iITY%Ñërßqsâd¦ L¨MæF.€$€’ŽD¦V°[P'õ†n‡Yü õÕ¬žo¬í‡ÆÖ®¾¡¸$0X/,]x³fµ¢²jöÀK À¶×:Ó«¥B~T‚!Ë—µœ¦™±gµ ÈYNS_ËÝÅå"VIb¯QlªÌO¹‹p¼ƒ×-ójÈ '\rWJÝ4M¥ì—{­ mLõbá¾G™h¢~<ÀÊÀg|¨ªÁ#½6éÛÙ5–ꦉ* TÉáz´³L‰MÆ@±ím†fÝ’ÃÐauba¾¥võ‡`ýŠðì>¹[%~1úxKC·Œ™LyIó•à `}Æ|€K¼ûOÄ÷ŽËtvžÿ§g6?é¬þR|fg§Ür‘ç'>ÎCß=ûøÅÏ~Àzq„U— 8Ã(Çl{Ûîî~'‹t~)úäjí{W&ìZfRöå…Ä,N»ôrWpöZ¨}Š7/ºÜ\¦…½–F€ûk š@·Sxù릎3êB‡ á“•Œc‰ÔXÕ,›^HOØù x)…ë)X³Â a#þâõ'õ9Å[9ñö? ¹à²[Vß„,¥Œ +ñbÜ.–›^µØ•Ö}oU%¾½Vš^+•û,|ukd«ˆ„”ù­àÙ„ÌL¡Å>RA2¦eÈ™yA,ŠFf<Æ×:³X]5sê[×^Í~'d2ÒSÏlhR’•Z›Ìd)˜åS*³u¬I9 S¶›%Š‚*[t©]DÈÚtêÁB’«îF¸:‡ìch†` cÁ¿‰ø_‹vŽjÞ¸‹¾ÞÁa3[]ê®ÇÿSŒn;]MŒ«*ëø úðwÜšàb–ݹáRA¨óud®Úî¿ÒgT|Q²ó¿OÜ$î Íë{e'3G-Š brˆŠ®°Ëô+Ó`Æ¢‘mèJX'mGãvåhWÇ× È{þŸ[$nî>þÚuìíF^Ç=wVôȺäO‹"aÆñ\Caß¹kä.CËd¬³OV'SÕµš‡g.i±e ²Õ×°ËJ¤ãJέsuêÕWi‹:Õ­3]Š¿›úrãËXl²ú­FmB–s9–YZâ¸ÍÁ«fuÌ-0Ž~‚;)\Àah·0áiÍ~àÞiê©b¥J¿L,±£$(¼ F’®bHÊôFÒìÈ6ƒÝ+eùçIÍô·[ˆvoRàMWQܽ¬¾õù¬¦Íll!’Õ.WK$Ù\QeVÏªÓ ¡e¶" ¦G_ù2Èõ3ÌלAÎùš’ª¨8›mC*Q©&PÉ?!­1Tw0l²Ùu÷UÊx÷Z’MKŠ«fŘQØ"?Øìy6e,"†˜ 3;æ´XiÔ©§_D©êS–Z–½ŠnÛr|ß+D™¹’d⊵–¥ÙdÂÈ}N$!0ãïù¯ëµ– šš²ßOD¶Ë *¯‡2޼WOˆQ$TEÜÊIØ\©cÆæFŒ]+i V¸Üg˜Ë4jfÙ'Ë#F$õb -™[<&Aãb8‚ódyùDDŸtùwïåÝÍžýû°ÿ”Ÿ1 ñÞE1Ø„W#1ÛüŒÄÌLOù‰‰˜íþ'áòšh"ÜwNÁ²w”½Ž{Ö>‡·©øž݆xÀÆLdãÿ(ïÃÏøÊãþUÛºŸÑóšr3[Qûy«÷…–P¢ªm³á…â/M¹Xªk :>+ 7˜Ú Õ^¥¯_çuZ®[ÅÑm<ÛñÔUŽÃœ¡6*I®„ÂÁö…& ®ã6±‡ 'KÚc¦ŽÐU¨VÃ×Þ2íÄfsö}é › ûT©ÇÙ[`Øêä‹d¶"݈Ea4Øi_¬À{yãZãâÊ–ŸÔãòr˜ååQ•Ç!+»Ž¸{+!â¢IPm¨÷¨á„¤‚ÚóD²Pç­-­ºE¨²²K-ºIlTÛUˆd5&´,Ê‘TÄÍ;‘+µpâB‡|唑ÙèÇZ!«®¸*]EÔìž"$=ALŠ‘*Ëœ¶!ØÇÛ/ª)}60¶ízSb{C#)R»é€öĬ×LªmC ŠOÚ‘‡’n |êGYÉï9V`²øl„£ÄbTÈo°Æµk#aÍz{XS¥µàªŒÁ‡„±ŒSÇæ;ãç­ÇÛg‹¹žž…ÒÆà¶ÄÁˆ‚`Œ±¿j»éÅM©Ú¬+ìÅ.½SuŠËNãøàÞ´º™¼Æ7•ô;ÔñÕ~äÊï\ qHÕ¢ZƒdúÔ0&ÉSÅ­û 5ýPS§´ß,ÒI^mSZ’È‹ ÒÜ­’Q•y2Ìfuç²®Nw2îP×m¹ÓÙk`¨†Ë-iœôä 2U¥\D€™Ù-ºž-ÒV˜/ò€„¾à›Ǧ;}ÜJBX°2„œw;‡sï?³âqù+#­¼ß*×®Wš{V®š’‹OTÕL×¢rªò³Bäÿt‚¼FK÷vïúü›^¤€2\AÙ|ˆü­ÍV„\Éݵµ¬ø‹7_ ²ø‡ˆº=­.͈g󈟇ÃäÆÿg1jÛþ¤áª«íO‰üº›ˆå»60{:—„°ì:Ά8L1Mf< SÅ¥"CP“*M»J\LLìØˆ2 ¡g1˜Êä¢j¥ßVbõ¨šÞã¾Çz;7ýi™›}~>Ã""ï%3'Ãá%Ó÷ƒý/øIÅGaú¶¿ääü¹ø—>'ÅãøØêK"Œuä†îÝ;Ê©]w ã•ÝÖÊÈ,^V[$RÇÉËY$RG=çå58‘ïfláŽiÄäÝÃ(˜ôÑwi‚)ïÖµ¿ú1‡üŒ¦O‡Ê—“TŸ›ªÿ)ø’9Õüm~ù¿û‹†³áðø|toSñ?ÜÿÙtmpjWNuGb/horde-5.1.5/themes/default/graphics/config.png0000644000175000017500000000077512233761325023053 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ .%Ýs¼IDATxc hÌÐø¯Ybéshü×ø¯ÏbkVÙ3 *˜ ”¦¤(ƒ¹ˆ•Á!Ê $L ˆ(P¦ ¸à¦3!Èr½ãæbøÎ©ÌQˆ°Íáf2=(ñ‰yˆÇ‚[¡˜ñ“÷>˨PÈöŸÝü'ÿÏX*LîÒ“»UJg?;öš™áƒ!¯¦Bîd.¯“ Û¸N$«¦¶eÞåÝ7 ‹‰æ g£.é_æÆïïFs±‰1 2^„ûZã7+ÃW65V¯çO¹^s½xêõœ•…™•)ÿ®fdP8òQèï¬àí;~†^½°ãgðvH˜‚Üjaã¿W?ü`á3c<Ÿ¡wâ Ãyž_QÅ&„þº|ÒÌ÷€qÍz•D L…í—}aføËàòßa Üh[záþV™g‹Áb¸2øÌϬò’…ñ<…Ðèbabàdc þÏøÿÿ˜Åñ8Àì k‰y*ºr6&„ÛIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/mobile.png0000644000175000017500000000062212233761325023044 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ . èÆ±FIDATxc 0"säÝ™­YŒ ˜Ïý>÷÷ØÃmXjÔ°5³2°!à üÍð«ñF…Fÿƒs#øg¿®w8 —gAHp3<¼óõ‚ÿF‹ËHa*d[ùÍ*„B4𨤌Mœ‰P°VˆÏêO\ùþÁMøÊ…S᳨¿H`úûçêß ?8×üþÍŽÓ"¿,˜Ø~Z2YI &‘_¸Lüù™åÆ¿¿l7€!"?³0üÄê™ê}‡¬ÿ°±1€ ‘,¿ì޶:a ûÿ ÿþG@^éš[t‡Û5IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/logout.png0000644000175000017500000000126512233761325023112 0ustar mathieumathieu‰PNG  IHDRFÕΨ|IDATxÚ­”ÝKSaÇ—+M““ÈÞ]„JöBÒ•,­¥ž·-ÿ€ .Mèˆ2o Üt;››S“hÔ•vA»è…´Œ0«¥Ï65ß²÷ž¾lÃÙ9›ƒ.>{ÎóìÇçü^ŽnkÉ6=Ȇ,Ø6€u@·öSL  ”¯‘=ÀôjB Š(Âã¿üz±W~µÔ+¦ãK@ù1`†ç*5a¨øÚg#OÑlø9`ç4…Ë}2ù=h§ßúmÃs>éÈj¦½båókµU÷/U[BW-fv†ø"M!Ê ¿®Û)2 ²?TÈÅ—UO8¬.a‚4&õ&5aÈ{×YßþÞÁùתñ¡×^ Ò¨&ü¯ü‘AÐ"m1ÖIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/favicon.ico0000644000175000017500000000162612233761325023215 0ustar mathieumathieu‰PNG  IHDR‰ sRGB®ÎébKGDÿÿÿ ½§“ pHYs††OUÞ¬tIMEÜ 2sÞIDAT8Ë­“ßK[gÇ¿Ïù1'gĘ=+j–Sí†z¡[»ÆÜ¸û]ñf—»Ú ¬¹…®à¿ m‘ª½i. …Ê׸ù3ÉŒŠÁž““3tžäøî¢k©Y“¶/¼ðò>Ÿ÷û¼<ÏóR$2Pˆ3 C+—ËÛøâ‰ ¾·÷ ¹ÝîŸð?ˆSšv@  …ÜÍÀÎÎÎïzzz^uttŒµ4€ááax<ây>õ>HQ”;ªª¦†® ùB¡ÐSEQîµ4”e}}}ðù}ß4ÝÝÝËápøÛx<Ž_ÜÀèè(TUñûýWÞg(¼ÙÄb1loo»ºººžŸŸßðDò¸3jwøêøø8¢Ñ(ü~?òù»(œœ€ˆšƒAD£Ÿ‚ã¸IÃ0&mÛ†¢(ƒ¦ieŽã`o/‡›7¿|ID¿·|!ÇqˆÇ?Ãàà,Ë‚iš$ š¦Áår …ªUÓ™››{Ÿ/´ëú T5 žç_ƒ.ajjj—ˆ®7Þù™Ÿ5ø™áyIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/horde-power3.png0000644000175000017500000000524512233761325024121 0ustar mathieumathieu‰PNG  IHDRTö–}9 lIDATxÚåYyP“é¯Zñ\G-¢ÖÛZ]¥¬mÇiíÔ?ÔÝq´]Ï•¥]µä¾ïCÃd —„C„„CC8A" È áDX°UÇñv·?󨝔”¿ö™o˜ï{¾÷}Ïý<ùÙOŒíl®ÜàÕñ?þÊ.OºÊ‰J fGùs|p…]dÅòBùyÑùÕÉã\$%'ÒÒÊ;{ö,—Ëýq èàA.WoÆOs$%)›ãêåàbknafüÿdbbbmkéîíĉÌŸ”£“‚MLŒAVVV‰dªÀÛÛÛӽλ +.M9Tíæå¨3hÄCH!8ÂWP–øiÖ¤°Øçhooï§OŸN ø²²2H—NÆb{Žfœ7êS‹Òo6^¡«¤!O„â¤Àï½MÍÎ2h±Ô¹sçÂÃÓ’’222RSSa·ÁÁÁÎÎΦ¦¦ÄFŽ–˜>6þ¬’xg,hcc#‰¦<î²³³ÍÍÍéX!¾×oóÔ‘ßl̬hV·]—È ñ·B*Ìó¼YîL°aA/^m¿[·nùúú2™™›F] Â^£Éº´1“ŸÇògùûûGDD@šX?222...%%%33S ”––ŠÅb¸F}}}sssww÷ÄÀƒx<£x戣@ç@ÞÔ]ÑÑ×ÐÕß„¿µ2Q'ÄÒÒ°ª~üøñxvÅYÝÜÜTûÐ^ÁòÄÒÜ:¹(¯@€ëååeaaÁ¸n±;Â@¬­­mmm]\\`ËŠŠŠ23{ç·0ã˜öð£ÀΡm`þåêU:‹tV¬Ô»&Ì ²U7!“ƒ˜ k•àÌâÓÃ4šD^ÔÐ.^¹j¥¶¶öªU«ø©üÀÀ@ `52F2að ˜%ãü#Àã(wú[æÌ™ƒOfÍšg†¶}||jjj&çuøH 1Gg{( ª.®OÃ…lWÖr­®ófs‡„vœ?^U¨°ü*_ÀMÈàpyaї؜ؠÐ(V`˜o ‡—Ÿ«£«ÞÏÏo2àaWø’å £4€hY¸p>™7oÂ<¥©©iÒ!çõë×pc–Š.&DÂÈËZå-ÜTµÜî(nUVËîÔÑŽ07¢¾KT)Ë«”æ–ˆK,Í5]+®Í(¨âeÆZZ[àü®_]]MaßÅÃy[“æ <ô0~%—Ë_¼x1ÆoÞ¼ÃØöŸ——‡¤žž&®+n¼S†°"í‘´ß­oë©ëö ÝÑÑÑ&ðÒ®ZYOM³BL 2åmðÈïÖ¶(*k;J’pHWOG¸ J*•N üåË—áNâ €5‚_ ?{öì£GêëëoÚ´iß¾}111Ì"ŒOž<¹}ûö7îÙ³!z‚óéÓ§±Âúõë7lذcÇŽòJ‘âYÏ œ{)ꯇ~¾}ëï~¿ãÔ?þ>wî\ì¸h‘N»¢o{†ä É1_ùËçÛ¶~ñ[ƒž=u½TÐy¯ ‚~v$‹°P(œøònjè¨à¼:tèÐóçÏiøøx„¨ xöì1$''ëèè0¯Hš’Iï@—Ñw†ê‹xå½ö÷œ>ó݈W0ÆÈØ0ä Änr8â(T‡šxÄ ÏÏÖ¾ãnÓ‚ó‡o<}út楩A#R ‡Kðç*ZºtiKK³‹›³Æ üàƒ»ç|ÔHvW…Å·ò‚ÙþP;”6ð(¡¨Î5·0E‘¯|›¢ÞN_­[·.111??ÿðáÃÿÕÀÂCÃ÷ª[½zuBBŠãÇÓ|ÛßßæÌúÙ EKII 2%ŸÏÇÍ¢ÏÑ«ßÏ)¸šÄ‹ÿÕæMôdÉÒ%õ-’åzºôï7†Ç®ç¦gò¶ëo£'{÷îÍÊÊ‚þPz@óÑÑÑ㟖–æééIÅÕÞ(¼5‚oí¬R×p§Ú¶íý `ð[¶lÁÍŒ3p†ÁÀÀ€áç¤7Ä9z‹¢077NG<¿1п÷¯;ÊÁ¶Þ¡vaa¶–ÖL<Ô[±<ñrÜ´iÓpÿë-›}ƒúîö+SÓø3g¾cX¶l„Šê#==jx rD–Öæ!‘¾õÁ7¶I<‚tÈ,‡§¥´ pbèëëcŒŒŒˆÁÃÃ&ƒdo¥RIoO6†æIˇۗUkÍÒÂõkן‰uAee%¸¶¶63øÕÔ$[Ú±a«G{Rlgg§:x´îÇŽ£{T8½½½P)âFï‰ ?|QQ!,ÎÜ9 ]ìšÛëDâ­öåWûÐSŽÄjHLƒƒƒÏUôöí[,2åà;ûçßk"WäW^^ŽÓ3ö9<ç#ç½zõJWWwx$<„úœ¡Ñ †R&%$ÆÁ°÷!,TbÖTƒgººÙøDKKkxϼÿ~ZŠJ D5Rõp‚[BW(õ/^L+ 5ó“'OêÐPñÓRêZ«þ¼ûO#>„(Ý<«$b\‰ñ †Ž92å੟GÔ…NT‘Æ™r¦>OE˜·ÐdÚÝ»w£nƒfÐó#¤ãù£Gàóà\²dIWW QPbØÙÙÅ'Ç o‘÷4xx»|¡‚GW÷_~µ'%#¡MÑ–‘ ŸB9a¹ººnݺ4mzêÔ©©ÏLrÐH•–9BTNNÎGÈðîîî4Ir!ßw[ôÖvÞkìêo¦‘~Q¹€Å:L¸ q©¯>Ã+¬È „m£m&ãŸ!D_¸pæ9^¾®Eµï†vèç+eù4)¤a!ÚûˆX¶•Š îO SDü¨€Y&Иa¤ÄàŒœòKcLoÃca«87¢î¤‡êh„Ñê9~Ÿ¸RK[0“fFœ}3ÑÎÑl`Fò‰ÁÓès; Þ1 Amoë`å~Ήðk¼0±FiDÃ3d݉îÍápHçØ?ïŒat×n%âGW"k"Å~Zðš)úòXgÊ,Žsp¶!N4RhiÆYTËd2Ô3íWHÓëÑ/X"æüÄÉ/bç'óÃ,‘Ífc6Š&E llúØøa àdÔ‚€„Êo´‰UUU*<¸.óI8ןæö¼àŒÖv–ô!dA,øŸ8ýº0}fBÐÊIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/colorscale.png0000644000175000017500000000277112233761325023732 0ustar mathieumathieu‰PNG  IHDRdÀ} QûÀIDATx^íÝÁŠä: ÐÌê!ùÿ¬Z Äгx«šÅˆp­ºJÃÕÊd<îEdµÒ¨~-ï°÷b{/öš'.öÞ½½û¿Oö=qÏ{ÃËt(½+Ïã¯:·ør{ü¢¿v¾XÝOw ^–dµ»<ñX0(›ÕÀÂÅŲ”³‘¿ƒÂÄŒ"ÆË’¬vÅêdÙ >U­ UåËR…Ù³‚=Nõ•—¼(Y’Å;2àì²Nˆõ­%u–dʼny#øb–™›."«ß¯ÎRúܸE÷À‰ G·‘¥: / YmBhû u–ê,â†õ–Å×t÷ïg©ÎZ?JU_F?¨ÎRe¡–9ÜŒ¥ó‹ú:KuèC¡š>j»Û;R–de$/¼ØÝ“- =áÉ}s–úYý£ûq²rþÒ¢D–d§³úàeIã¢Åë¤χÈ’,^Íß8œˆƒûü;¡†ÐGË’, ʼ5¯æ£4ôœ02&ö3 #?ËhY’uN£O9Âjösb¨™Ýc€pN‚,݆¶æ=¾ˆ<‚2ŽbHË’, –NØÑ8Ïbc"gÙDfé±¥ò6TÎâ÷<½³Àf2zbÎ’¬q5Z Ð9‹<«“¥~Vñ98zi?K²òÕÄ3 NUÛ‚ã õåËR?ëà@-AYØ‘'ÆõÅŒ”¥h¡ÌÂg(ü!i`bÀum?KuV>:ûyv}±º~–nÃ…5B}±(1Ÿªð MœLû]d©ŸUrÎy >B޲eIV}ÛàEòóèâO¬P–dYÚ9ÆÍxëÎMüI’,ɲÄ=¸§džOŒÆù¢¦S*YÍ,ñ¤…rÈbá¯%Ê’,ûèIÏ;‹¦*L>_–nC !êóÁÿkCÿÄ_‹–(K² €Â"°¾8:T\ܹ²”³¼NŸQB±5þ¢äeIñq¥îñayjî.Ký,Ôæ0By˜ ²$ëêÛg› ±{QÉ5]~Î’,\β °µ­ö7ÓYêgj 4?]dtʪs–ê,²x wÓ}ä÷ûóûY’uu'` €r9«êÍfº,å,þZ챿ZÈ «ì:HÆ. ¢F–dý™XŒ‰Åo0ïèÿA3ÿvähjR\?•ôª ¸’ÅkîÉêR%‹Ÿ›ü(B–daG8µSG1¼ßnÏzƒyð­X–ê¬øç†s–]ö÷¯³Tgd u.Ô&dù'ßÖ<® ë,ÕY'ë;"ËÜææaNH7$¯³-zå¹à`7ôϦ~ |N}¥:‹?'&4+sNŠ,ÕYË„£6!¢yGe‘ßü×ÙìÍ߀µ4Yª³ð“1õ¹á'cBÖƒtô(^–ê,ØQjÜœrŸ·†4-µ\Yª³ðž‹[æ _5廲iu–¢޲_áqwß:‘(­ºÎRE¼@&R%UC粬¤Î’,Þù·áYË‘%Yšž•$K²4=‹—%Yšž•#K²4=+Y–r–¦gåÈ’,MÏÊ’%YšžÅË’,MÏ*¥œ¥éY9²$KÓ³xY’¥éY9²$KÓ³’e)gizVŽ,ÉÒô¬Y’¥éYé²$KÓ³êeIÖ¸hñòXâÌ?ÉâÕà/l>È×Þ jJç”JÖß$ïÔÄÓÐsˆÇkçœ;çh$ÌV–,'¢O9ÂjösbìD8ð99²tbtØš÷ø"òÊP8zˆ!-K²€X:aGÃg1n§Ñ bÕß4 œÅïyFÞ%´™ž˜³$k¤´¶0 œ³èù°:YêgŸƒ£Wõ³$+_ —Yø‹AG@_•,õ³Ô”…yb\_Ì(YŠÌ,|†Âr&\×ö³Tgå£Ã±Ÿ÷`Ñ«ëgé6\8P#Ô‹ó© ¿ÐÄÉ´ßC–úYEçì‘×à#䈒¥øôž–°e¯J IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/button.png0000644000175000017500000000021112233761325023102 0ustar mathieumathieu‰PNG  IHDR»iô0PLTEúúøúù÷ø÷õùøö÷÷õõõóôôòòòðññïðððñïðïíîíëììììëëëêêêTÿòTIDAT[ca`€Cd62;5Ti6¶›»IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/calendar.png0000644000175000017500000000105112233761325023343 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ /â±Q­IDATxc ¨­V»«*Œ,¢*¬vWm5ŒÇ"ÓØ¬øÃY8>mýöæ?\‚K„ÏûÏ+»? ªÐð? ;3ÆH&21p0üeøÉð‡áÝO¿°úpŒD² qHºÌ§Â©}˜nbØÝ› –·g¿¹Á úà„œýÆòöM  H®ðÂcŒG_æ¯×ÌøÆ ™!ç¯ôE#ãÂc«Ÿúr™ÛâϽ_¯x<¿lg`‘lb,J_Oð貚!Yí÷øòã‡ýï/ýzzé„ìoüðò?‰ˆàÙÍ<ÆÅ«¯¯‰:ªŸ``‘¢ZLòª'dý‘¬ö¼øFï7;0üïw ˆdšò˜XD.mׇš¸íÞ4ý‰‘”ž<¨›SöàIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/login.png0000644000175000017500000000125712233761325022712 0ustar mathieumathieu‰PNG  IHDRoUtvIDATxc—DÆŒ@Ì ÄÜ@ÌGæbftØXˆUX—H¬Äò@Ì…n ‹¦µ[Åvïñº†ïö¼ÞµÛóF×.Ï›={½®öðÞnÈÉÕK£'öùO î?äódF¸ÅV™IåM²u/šnçÒ¸ÖÕªs§‡:®^âd—XoÒ¶ÙýÄ„CÞÿûzC Ãļ@¬Ö²Éme@¦¡Í²Y 4’4×¹îîÖ5ŒKìI±Qç»À°¹Unj䳃 Ä0l-аƒ@Ã@ ãb%´2bÛömî÷úö{ýïÞåùè%+ Ä@„a «]vƒÔôîó&¤g©lÓºÕý&¾Õ½ÏëGP!wíñ|—Ùkí s!̰: a ùn¨aÂFv*Ž={=ÿÂÝ{<¿Ö,wöA1l•ón¨Äeƪv@Î"ñ·öíîò0ÃjW:ï‰Ó$Ìl¼5ô»vyü'ëÜáîf5Ëvƒä€É›¡ÆbÀÀ>Ãm[Ý/¶lt»Ö±ÃãPÑ(þ”s@ÍšeN»Aò@µxÓ™zËf·›;ÜÿwlwѺÅM[:«^ê´¤èuœ†q±Ѐ«í[Ýï4ot“‡ˆcVµØi7ÐÅÿÛ¶b7Œ šžx›7º.Îd# N˜Xˆµ*;înÛêöh1†aŒPWI±¼¢š¬ˆÆUØ´b¡ã AÿAò›« mUŒ²û­[ñá¬>«¶Œn«N`:»Ú²Ùõó&W¬.ã Ì6´Jþ' ot}„-̘SÛ-%Ö¹Ì%7®w™Ó´ÑµMÉò¡¸‹ÝIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/sidebar-new.png0000644000175000017500000000066412233761325024003 0ustar mathieumathieu‰PNG  IHDR;mGú{IDATx•Ò½ëRQÇñbƒàÐø?ø¸ÖIEŽAHØlc­¦ÈÍ07©±¶›‚\"1H‘ïæàâ ×|NP|°Ïp„k¿{Dßðâ~ï…ËÁáp8ÁîÐCzMIzO z@·]þÿîQ* ¥ŠÅ¢1™L¾o·Û*ýÇßx–ŽD"÷oŸÏh·Û_ù[.Ñï÷ ®¨dX–•å[äÓé4Õãp8üa½^7H\@5 €½)•JW«•h@`™Á``.—KÑ€"°Ì|¾¨/ÅÁO8C,°·ü@õÙl&~Ââ`=µmû/–h@XÐ4ÍO£ÑH4 ˆF ÃáÑhô׉ (â¢FAðæyËår’{¹R `v¯wt«Õj}æ*zG€u»ÝÍfóy§ÓùýhTè0¸ Ò+úBúIzIw G`ÿŸJWí½AIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/app-unknown.png0000644000175000017500000000112012233761325024044 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®Îé pHYs ‰ ‰£ÒêtIMEÜ - íŽ\bKGDÿ‡Ì¿ÔIDATxÒ?hqð¸¸;·C“»š‹­^„;zI¯¹»xµwä:Rq -¤"hÁ¥“‹Á¡ãAÁÁA"nþt Q¡B­d B[ˆð‡|}Gk¨Sîñ¸w_>÷¦'Æz&•‰ÊT’n¥ûéÖT2Q™TþËR†Ö™A&æ¨s˜ÖIç˜ZÕ¥…<<©=š-èR­Ž0͘•6D(ãæÉÝý¥£2ÍlÌJílkFÑ»6|Ä(þ~»/ðæÏ÷Ÿ~”áÕ»…avÍ‚Clw>béÖ%õ¶y…ÇõbÊ-d׺µ<",ÃǃÚ|¦vvAˆ'[EÊ"äáÖZm"‚¸ ×ñ°Sû%A*V›¡Ù.PE-<¾ >Ïa˜}†n'Ä2W ÷_ 1æ`cø{·Ãp¥ü¯}K5²_m,r`¥ÎpsÇ;…>¶Þ×^={Wæó«S! H$…Ÿ9ŒÃ‡Ãر»€m˜¶þNÙB*šÑßËîV—ÙÇh2úÕ +‰ä"Ú¤@ÄËÜ– ²w¦D{•YInÞ;½­²§ÍÀŠAn‡}=ÓÎIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/edit.png0000644000175000017500000000065112233761325022524 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ ->‰ÿ-IDATxc PIW9­¦BP™†µá?ËÿÚ5€J™p+“r>Ælu˜A@†e…šI"»mòz/édý÷·¥Éÿlÿ›ÿ×ZócÂÉ‹ÿÓ±*Ká˜ÅËÈÁðƒá×ÿ?g¾0ÃjµF*D/Çÿ´#gþ‚”b*› Qöùø‘¤Œ{±{! ä6×ÿAÿ]ÿÍ>ô?!ÂbZ:Çt¨iÁ‡S3ÎEÈ1!)ËàDR–¾„qBÉ×ê\ç`ÊB§-aœê(f%©²‰Eå‰HYÐáô¥Pe˜@k·Ö‘וmû]ÿM=ø?w<Șÿµü¯Tzùúÿ i„¯ùÒØ˜ÿI3gmYµñ…\V.’U%>2|g¼ƒ7Ýýßð¿ú¿ •Ò:äÉn4¦‹‰IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/minus.png0000644000175000017500000000102412233761325022725 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ /-ʳ Ï˜IDATx•ÒMkÔ@Çñïdÿ›¤Mc—–ÚƒX‘²¶¡øúVZ=ZO½Ø{/¾‘ºÇú"¼,Bw«"B¥Hš .ºw=N_ÝUCåüß)žô~¼åóœ>'Ù™¯WèN‡÷+†- é²Ä߇Ë>zªàûƃzþfGIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/download.png0000644000175000017500000000062112233761325023403 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ --僩IDATxc hôküÃI¨â,è U¿€i^¥ø²0q3p1|g`fBs1…±ˆbtPȈ`©ígP`dàåæ`øÁðúë§7ÿ^þ·½ý ÅÄÿ Kß‹ ˳sCøìÜÂò"bs^ÝB·šñ¿I]ÝeÎ? ì e  \ÿŠÏÚ¶0þÂp#ãe÷¦ÐcßÀ®a†¤û¡ ~Æ“Xœqçù[ÿ¯Ùƒ\ùPÉfÆux|÷·3ü¸÷ÿ S¿¦`ñµ|ƒL€‹ÁTý³ßS׿=ïv‚ýgDÑ+Äð¡è9ÇÁsŒ`7“ZìŠÀÍòò#®Û6pÏpãpñW†CnŒ7þÿO0‰NùŒìO)5æb9IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/filter-topbar.png0000644000175000017500000000056312233761325024353 0ustar mathieumathieu‰PNG  IHDR'€Õ†bKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ 6 àIqIDATxc 0‚ˆÿÿñ(`„Ð,`òàU{\ ƒþ¯cD( yøû3+ª¢_«.2ü†°ÁRŒoÙ;YØŽ¼ä@…{~}àgFÑûŸùÝ㵯޿øîþùTSµŒñ/W —Ðí¦1ü;Ç0‹³Ÿ/>ùëá˜yÿý 2Âê¿ÿÜŸ>.:ýãHÙËÿ‘ÿƒzq†Ù»à¿O­)lùô ˆOø¿8Ü÷ìÿÿ£ÿƒþy£Ê …œøR®û —V¯ÛŠ® ˆ^Sû€ŸB žB#ã_.£PR£ñèó— { )|5¹ÿ†)ƒÓºÛݤÍ@ ÷Ox†aÿ¾¹IEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/az.png0000644000175000017500000000052712233761325022213 0ustar mathieumathieu‰PNG  IHDRºWí?xPLTE………sss'''(((""""""###,,,§§§666ÿÿÿÿÿÿZZZñññEEEÿÿÿØØØ@@@ÿÿÿ±±±CCCÿÿÿ€€€ÿÿÿRRRPPP===NNN666777JJJQQQ<<¿pÅ¤Û ¿ñ%ÂþM¿}š$«tIDATxÚ­ÈÇ@0ÐÕ‰-Êêüÿâ’!NŒw|ðšan›i(©ó¶åº’Ú:M«öHįiÙŽ{¦ëØ–LôÙCO<™~0‹qsàƒF#Æ(„ wˆ]Lá*I³¦ÉÒnrV,EYU%<Ô5üdõÒ ;¯oîIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/graphics/info_icon.png0000644000175000017500000000112712233761325023541 0ustar mathieumathieu‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs ‰ ‰£ÒêtIMEÜ /e­ÛIDATx•Ò=haÇñï“û'¹æ ±Š(¶HI TÅÔ""Šà ØÕ-tTq¨ƒ"E7A1‹Pé¢t¤ˆÍÁ¥PL*& ¾kÓÆ¼Üyžy8lÁA¿Ûñûðü—ã_S¬iÀô áÑÐ^†Xü9ß-«ÒRë/p(oÜæÂ.]Ú îÉE[¯:²g"“ý}ĉa!‚͸§6~ùT^ób.o>‹‹À ãl±—c?F VœÖþBæ”âÒG Á¥]¹S¿V_FHá_) ›h*&²‚… ™ÎÝ+>Õç,„D6TDÃMGüÏkc•O¼Ø5–Φ ÄßѰ™‹"tÈVÎO?x7ùtBÔßÑÐÛ!Í îDÝž™† ñw4´jBÚ·á,ëGÃþºƒÎ$e°.ÇßÑp @—í³“Kpìëe{õµ«¡¿£áÄœWÕ´ËæW‡®Âž7G¯Üóªs <óù£K‡S¢hð¹Ò°] Br< ó͹þdl\µôhþÖÍÇ,Ya]„çøì¹ Ê¡—²½©ƒé‹±¾Á0êVo4wOýfú4Á«­»¥ï/y›q¶ImëÇ Ió´f ¨IQz?.ó”)©ÿÛ/Ä+˜YÞ‡SuIEND®B`‚tmpjWNuGb/horde-5.1.5/themes/default/rtl.css0000644000175000017500000000740712233761325020612 0ustar mathieumathieu/* Global default styles. */ body { direction: rtl; } .headerbox { text-align: right; } .header { text-align: right; } /* Table styles. */ td, th { text-align: right; } .sortup, .sortdown { background-position: right center; } /* Form styles. */ form[action^="https://"] input[type="submit"] { background-position: 5% center, right top; padding-right: 13px; padding-left: 33px; } /* Styles for email-like messages. */ .citation { padding-left: 0; border-left-width: 0; padding-right: 1em; border-right-width: 1px; border-right-style: solid; } /* Various popup and status layers. */ .notices { text-align: right; } .notices img, .notice img { margin-right: 0; margin-left: .5em; } /* Tree styles. */ span.horde-tree-image-1 { background-image: url("graphics/tree/rev-line.png"); } span.horde-tree-image-2 { background-image: url("graphics/tree/rev-join.png"); } span.horde-tree-image-3 { background-image: url("graphics/tree/rev-joinbottom-down.png"); } span.horde-tree-image-4 { background-image: url("graphics/tree/rev-joinbottom.png"); } span.horde-tree-image-5 { background-image: url("graphics/tree/rev-minustop.png"); } span.horde-tree-image-6 { background-image: url("graphics/tree/rev-minus.png"); } span.horde-tree-image-7 { background-image: url("graphics/tree/rev-minusbottom.png"); } span.horde-tree-image-8 { background-image: url("graphics/tree/rev-minusonly.png"); } span.horde-tree-image-9 { background-image: url("graphics/tree/rev-plustop.png"); } span.horde-tree-image-10 { background-image: url("graphics/tree/rev-plus.png"); } span.horde-tree-image-11 { background-image: url("graphics/tree/rev-plusbottom.png"); } span.horde-tree-image-12 { background-image: url("graphics/tree/rev-plusonly.png"); } span.horde-tree-image-13 { background-image: url("graphics/tree/rev-nullonly.png"); } span.horde-tree-image-16 { background-image: url("graphics/tree/rev-leaf.png"); } /* Tab styles. */ .tabset { float: right; } .tabset li { float: right; margin-right: 0; margin-left: 3px; } .tabset img { float: right; padding-right: 0; padding-left: 2px; } /* Preferences. */ #services_prefs .header ul { float: left; text-align: left; } .prefsOverview div { float: right; } .prefsOverview div div { padding-left: 0; padding-right: 10px; } /* Calendar Popup. */ .hordeCalendarPopup tbody { text-align: left; } /* Redbox styles. */ #RB_window { text-align: right; } /* Color picker styles. */ #color-picker .north div { float: left; } #color-picker .south { margin-right: 10px; margin-left: 0; } #color-picker .south img { left: 0; right: -1px; } #color-picker #color-picker-cursor img { left: 0; right: -1px; } #color-picker #color-picker-hex { padding-right: 7px; padding-left: 0; float: right; } #color-picker #color-picker-resize { float: left; left: 0; right: 7px; cursor: sw-resize; } .leftAlign { text-align: right; } .rightAlign { text-align: left; } .leftFloat { float: right; } .rightFloat { float: left; } /* Nav images. */ .navfirstgreyImg { background-image: url("graphics/nav/last-grey.png"); } .navfirstImg { background-image: url("graphics/nav/last.png"); } .navlastgreyImg { background-image: url("graphics/nav/first-grey.png"); } .navlastImg { background-image: url("graphics/nav/first.png"); } .navleftgreyImg { background-image: url("graphics/nav/right-grey.png"); } .navleftImg { background-image: url("graphics/nav/right.png"); } .navrightgreyImg { background-image: url("graphics/nav/left-grey.png"); } .navrightImg { background-image: url("graphics/nav/left.png"); } /* Mainpage */ #horde-page { padding-right: 8px; } tmpjWNuGb/horde-5.1.5/themes/default/sounds/0000755000175000017500000000000012262230550020573 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/themes/default/sounds/gnid3.wav0000644000175000017500000003257012233761325022334 0ustar mathieumathieuRIFFp5WAVEfmt "V"Vfact@5data@5{|}{yvvx{~~‚…ˆˆ‡…„…†‡…‚~|{|}|ywvx{~~…ˆˆ‡…„„††…‚~|{|}|zwvw{~~„‡ˆ‡…„„…†…‚|{|}|zwvwz}„‡ˆˆ†„„…†…ƒ|{|||zxwwz}€ƒ†ˆˆ†„„…†…ƒ|{{||{xwwz}€€ƒ†ˆˆ†„„…†…ƒ€}{{||{ywwy|€€‚…‡ˆ†„„„……„~|{|}|zxwy|~€„‡ˆ‡…„„…†…‚~|{|}|zxwx{~€€„‡ˆ‡…„„…†…‚|{|}|{xwx{~€€„‡ˆ‡†„ƒ………‚|{{|}{ywxz~€€€ƒ‡ˆˆ†„ƒ„……ƒ|{{||{ywwz}€€€€ƒ†ˆˆ†„ƒ„……ƒ€|z{|}{ywwy}€€€ƒ†ˆˆ†„ƒ„……„€}{{||{ywwy|€€€‚†ˆˆ‡…„„…†„}{z|||ywvx|€€€‚…ˆ‰‡…„„…†„}{z{||ywvx{€‚…ˆ‰ˆ†„„…†…‚~{z{||zwvwz~€€…ˆ‰ˆ†„„…†…‚~{z{||zwvwz~€€„ˆŠ‰‡„„…††ƒ{zz||zxvvy}€€€„‡Š‰‡„„…††ƒ{zz||zxuvy}€€€„‡Š‰‡…„…††„€|yz{|{xvvx|€€ƒ‡ŠŠˆ…„…††„€|yz{|{xuux|€€ƒ‡ŠŠˆ†„…†‡…|yy{|{xvuw{€‚†Š‹‰†„…†‡†‚}zyz||yvtvz~€€…‰‹Š‡…„†ˆ‡ƒ~zyz||yvtux}€~€„‰Œ‹ˆ…„†ˆˆ„zyz||zvstw|€€~€„‰‹‹ˆ…„†ˆˆ…€{yy{|zvssw|€€~ƒˆ‹‹‰…„†ˆˆ†€{yy{|zvssv{~ƒˆ‹Œ‰†„…ˆ‰†|yy{|{wtsv{€~‚‡‹Œ‰†„…ˆ‰†‚|yy{|{xtsuz~€~‚‡‹ŒŠ‡„…‡ˆ‡‚}yyz|{xtsuy~€€†‹ŒŠ‡……‡‰‡ƒ}yxz|{xtrty~€€~†ŠŒ‹‡……‡‰ˆ„~zxz|{xurtx}€€~…ŠŒ‹ˆ……‡‰ˆ„zxy{{yursw|€€~€…ŠŒ‹ˆ†…‡‰ˆ…zxy{{yursw|€€~€„‰ŒŒ‰†…‡‰‰…€{xy{{yurrv{€~€„‰ŒŒŠ†…†‰‰‡{xxz|zvrru{€~ƒˆŒŠ‡…†ˆ‰‡|xxz{zvrqtz~€~ƒˆŒ‹ˆ…†ˆ‰‡‚|xxz{zwsqty~€€~‚‡Œ‹ˆ…†ˆ‰ˆƒ}yxy{{wsqsx}€€~†‹Ž‰††ˆŠ‰…~ywy{{xtqqv|€€~€…ŠŽ‰††ˆŠŠ†€zwx{{ytpptz€}„ŠŽ‹‡…‡Š‹‡zwwz{yupptz~ƒ‰ŽŒˆ†‡Š‹ˆ‚{wwz{zuqpsy~€~ƒ‰ŽŒˆ†‡Š‹‰ƒ|wwy{zuqorx~€€~~‚ˆ‰†‡‰‹‰ƒ|xwy{zvqoqw}€€~~‡ŽŠ‡‡‰‹Š„}xvx{zvqoqv|€€~~‡ŽŠ‡‡‰‹Š…~xvxzzwqnpu|€€~~†‹‡†ˆ‹‹‡xvwzzwrnot{€~€†ŒŒˆ†‰‹‹‡yvvyzwrnnsz~€…Œ‰‡ˆ‹‹‡€yvvyzwrnnry~…‹‘‰‡ˆ‹Œˆzuvxzxsnmqx~~„‹‘ŽŠ‡ˆ‹Œ‰ƒ{vuxyxsnmpw}€€~ƒŠ‘‹ˆ‰‹Šƒ{vuwyxsnlov|€~~ƒŠ’Œˆˆ‹‹…|wuwyxtolnu{€€~~‚‰’Œ‰ˆ‹‹…~wuvyxtolmsz€~~‡Ž’‘ŠˆŠŒ‡xuvxyvpllqy€~€†’’ŠˆŠ‰yuuwywqlkow~€}~„Œ’”‘Œ‰ŠŽ‹„{utwywqljmu|€€}~ƒ‹’•’Œ‰ŠŒ„|utvxwrlilt|€}~‚Š’”’ŠŠŽ†|usvyxrlhkr{€€}}‰’•“ŽŠŠŽ‡~vsuxxslhjqz€}}€ˆ‘•”ЉŒ‰wsuxxsmhipx~€~}€‡••‹ŠŒŠ€wstwxtnhhnw~€~|†••‘ŒŠŒ‹xstwxunihnv}€~|…Ž•–’ŒŠ‹‹ƒyssvxuoiglu}€~|~„Ž•–“Š‹„zssvywphfkt|€}}ƒ•—”Ћޑޅ{truxwqjfjs|€}}‚‹”—”ŠŠŽ‘‡|truxwqjfiqz€€}}Š“—•ŠŠ‘ˆ}trtwwrjfhpz€€}|‰“—–‹Š‰~uqtwxskfgoy€~|€ˆ’˜—‘‹ŠŠvqsvwslffmx€~|‡‘—˜“ŒŠŒ‘Œwqrvxtmfeku~|~…—™”Š‹’„yrquwungdis||}ƒ–™–Š‹’‡{rpswvpgcfp{€}|Œ–š˜‘‹‹’‘ˆ|sprwwphcenz€}|‹•š™’Œ‹Ž’’Š}sorvwqicdmx€~|€‰”›š“ŒŠŽ’’‹toquwricckw~|‰”›š”Š’“Œ€uoquwrjbbju|‡“››•Ž‹’“‚vootvskcbht~|~†’šœ—‹’”ƒwoosvskcagr}€|}…‘šœ˜‹‘”…xonrvtld`fq|€|}„™™‘ŒŒ‘”‘†ypnrvtmd`eo{€}|ƒŽ™š’ŒŒ‘”’ˆ{qnquune`cmy€€}|‚˜›“Œ”“Š|qnquuof`blx€~|‹—œ”Œ”“‹~rmotupf`ajv~|€‰•–Œ””€smotuqh``ht~~|ˆ•—Œ”•Ž‚unnsuri`_gs}|~‡“œž˜‘ŒŽ“•„vnnrurja_eq|€|}…‘œŸš’Œ’–’‡yomqutlb^bnz€||‚šŸœ”Œ‘–”Š|plpuund^`kw€}{€Œ™ ž–ŽŒ‘––qlnsuoe]^gu}{Š— Ÿ˜Œ•—€rlmsupf]]fs~‚{~ˆ–  ™Œ•—‚tllruqg^\dr~‚{}‡•Ÿ¡›’•˜’„tllruqg^[cp}‚{|†”Ÿ¢›’•˜“…ulkqurg]Zbp|z|…“Ÿ¢œ’–™“†vllqurh]Zao|z{…“Ÿ¢“Ž–š•‡wlkqvrh]Y`m{z{„“ £”Ž—›–‰xmlqvti^Y_m{z{„’Ÿ¤Ÿ•Ž—œ—Šymlqvtj^X^lzyyƒ’Ÿ¤Ÿ•—œ™‹znlrwuj^X^ky€zy‚‘Ÿ¤Ÿ•˜™Œ{olqwuk^W\jy€~yyŸ¤ –—›Ž|nlrwvl^X\ix€ywŸ¥ –—›}okqwwl^WZhw~yw~Žž¥¡–Ž—žœ}okpwvl_VYgw~xv}¥¢—–žž’pjowvm_UWcs~xtzŠ›¥£™Ž•žŸ•ƒrjnvwo`UU`q}~xtx†˜¥¤›‘”ž¡˜†sjlswrcTQ[m{~xru„—¥¦ž“•Ÿ£œ‰ukmuyrbTPZkz}xrt‚—¥¨Ÿ“– ¥ž‹wmmtzscTOXjy|wqs•¤¨ ”–¡§ ymnvzsdTNWhw|woq€”¤¨Ÿ•‘–¡§¡zmnw{tdSNWgv|voq~’¤¨ ••¡¨¡{nnv{vfTMUfw|vop}‘£§¡–•¡¨£‘zmnv{veTMSev|voo|’£¨¡•–¡¨¤’{nmt|weTLReu{wpo|’¤«¤—‘—¢ª¦’|nkt|vfTJPct{xnn}’¤¬¥˜“—¢¬¨”}mkw}vgSHOaq{wnn|¦®¥š”—¤®¨˜nluzwgQGN^pztlnz¥¬§”˜§¯«šnntzxgQHK[qytmlw¥«¨œ“™¦¯®œomt}{gRHI[ovsmht¢¬©š’™¥°°ž„tnt€|iVGH\nutjet‹Ÿ¬¨™“˜£²²ž‡tnx|lWFHZkwuherˆ ­¥™’”¢²±¢‹tmw€~qXGJXjxthfo„Ÿ«¥š‘£±°£‹tov}qXIIUlxriel„¥¤œ’–¥°²¥Šuqu}€nWJGUktqkel†ž©©œ‘—¤¯´¦Šwor~mYHDThqrjbn…šª«œ“—¡±¶¦|pt|n[FDScoqe_l€˜¬©—–¢´·ª–~ry€~r[EDO^nma^fy–¨¥•”¥¶¸¯›x}‚„x\HDK^mi_\_t’¢£‘‘¤´»¶ƒ|†Šz`NFLali`WYqŒœ¢™‘ ¯»¶ˆ~~‹}gTHQdkkcVZo…™ ”‰Ž›®½²œ‹~oVKVemobV^p…›ž’‹Œ–«¶­ˆz€ŒŒ„pWPXcqtg]_k…ž’‰…“©¯©›‚w~…Š…mWSYhywib`mˆ™š•‰„”¦­«—}w}„…l[TViyunf`ršœ“ƒ…˜£­®–xw…“…n^OUlvvrc_s‡–Ÿ“ƒˆ’¡²­•…wv‹“†w`P\nw}s^`o~”œ‹‚ƒ‰¢¶«šˆu|‘eYaht|l^cj~–”‡‚|…¡¬§ ˆu}‡Œ’€fflu…f][_|–—’nz–¤«Ÿs|†˜ž„mc_r‰ƒui\g„“‘}pzƒ‘ž’€|y€“—†wpppZGd“¤”~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€{|}{yvvx{~~‚…ˆˆ‡…„…†‡…‚~|{|}|ywvx{~~…ˆˆ‡…„„††…‚~|{|}|zwvw{~~„‡ˆ‡…„„…†…‚|{|}|zwvwz}„‡ˆˆ†„„…†…ƒ|{|||zxwwz}€ƒ†ˆˆ†„„…†…ƒ|{{||{xwwz}€€ƒ†ˆˆ†„„…†…ƒ€}{{||{ywwy|€€‚…‡ˆ†„„„……„~|{|}|zxwy|~€„‡ˆ‡…„„…†…‚~|{|}|zxwx{~€€„‡ˆ‡…„„…†…‚|{|}|{xwx{~€€„‡ˆ‡†„ƒ………‚|{{|}{ywxz~€€€ƒ‡ˆˆ†„ƒ„……ƒ|{{||{ywwz}€€€€ƒ†ˆˆ†„ƒ„……ƒ€|z{|}{ywwy}€€€ƒ†ˆˆ†„ƒ„……„€}{{||{ywwy|€€€‚†ˆˆ‡…„„…†„}{z|||ywvx|€€€‚…ˆ‰‡…„„…†„}{z{||ywvx{€‚…ˆ‰ˆ†„„…†…‚~{z{||zwvwz~€€…ˆ‰ˆ†„„…†…‚~{z{||zwvwz~€€„ˆŠ‰‡„„…††ƒ{zz||zxvvy}€€€„‡Š‰‡„„…††ƒ{zz||zxuvy}€€€„‡Š‰‡…„…††„€|yz{|{xvvx|€€ƒ‡ŠŠˆ…„…††„€|yz{|{xuux|€€ƒ‡ŠŠˆ†„…†‡…|yy{|{xvuw{€‚†Š‹‰†„…†‡†‚}zyz||yvtvz~€€…‰‹Š‡…„†ˆ‡ƒ~zyz||yvtux}€~€„‰Œ‹ˆ…„†ˆˆ„zyz||zvstw|€€~€„‰‹‹ˆ…„†ˆˆ…€{yy{|zvssw|€€~ƒˆ‹‹‰…„†ˆˆ†€{yy{|zvssv{~ƒˆ‹Œ‰†„…ˆ‰†|yy{|{wtsv{€~‚‡‹Œ‰†„…ˆ‰†‚|yy{|{xtsuz~€~‚‡‹ŒŠ‡„…‡ˆ‡‚}yyz|{xtsuy~€€†‹ŒŠ‡……‡‰‡ƒ}yxz|{xtrty~€€~†ŠŒ‹‡……‡‰ˆ„~zxz|{xurtx}€€~…ŠŒ‹ˆ……‡‰ˆ„zxy{{yursw|€€~€…ŠŒ‹ˆ†…‡‰ˆ…zxy{{yursw|€€~€„‰ŒŒ‰†…‡‰‰…€{xy{{yurrv{€~€„‰ŒŒŠ†…†‰‰‡{xxz|zvrru{€~ƒˆŒŠ‡…†ˆ‰‡|xxz{zvrqtz~€~ƒˆŒ‹ˆ…†ˆ‰‡‚|xxz{zwsqty~€€~‚‡Œ‹ˆ…†ˆ‰ˆƒ}yxy{{wsqsx}€€~†‹Ž‰††ˆŠ‰…~ywy{{xtqqv|€€~€…ŠŽ‰††ˆŠŠ†€zwx{{ytpptz€}„ŠŽ‹‡…‡Š‹‡zwwz{yupptz~ƒ‰ŽŒˆ†‡Š‹ˆ‚{wwz{zuqpsy~€~ƒ‰ŽŒˆ†‡Š‹‰ƒ|wwy{zuqorx~€€~~‚ˆ‰†‡‰‹‰ƒ|xwy{zvqoqw}€€~~‡ŽŠ‡‡‰‹Š„}xvx{zvqoqv|€€~~‡ŽŠ‡‡‰‹Š…~xvxzzwqnpu|€€~~†‹‡†ˆ‹‹‡xvwzzwrnot{€~€†ŒŒˆ†‰‹‹‡yvvyzwrnnsz~€…Œ‰‡ˆ‹‹‡€yvvyzwrnnry~…‹‘‰‡ˆ‹Œˆzuvxzxsnmqx~~„‹‘ŽŠ‡ˆ‹Œ‰ƒ{vuxyxsnmpw}€€~ƒŠ‘‹ˆ‰‹Šƒ{vuwyxsnlov|€~~ƒŠ’Œˆˆ‹‹…|wuwyxtolnu{€€~~‚‰’Œ‰ˆ‹‹…~wuvyxtolmsz€~~‡Ž’‘ŠˆŠŒ‡xuvxyvpllqy€~€†’’ŠˆŠ‰yuuwywqlkow~€}~„Œ’”‘Œ‰ŠŽ‹„{utwywqljmu|€€}~ƒ‹’•’Œ‰ŠŒ„|utvxwrlilt|€}~‚Š’”’ŠŠŽ†|usvyxrlhkr{€€}}‰’•“ŽŠŠŽ‡~vsuxxslhjqz€}}€ˆ‘•”ЉŒ‰wsuxxsmhipx~€~}€‡••‹ŠŒŠ€wstwxtnhhnw~€~|†••‘ŒŠŒ‹xstwxunihnv}€~|…Ž•–’ŒŠ‹‹ƒyssvxuoiglu}€~|~„Ž•–“Š‹„zssvywphfkt|€}}ƒ•—”Ћޑޅ{truxwqjfjs|€}}‚‹”—”ŠŠŽ‘‡|truxwqjfiqz€€}}Š“—•ŠŠ‘ˆ}trtwwrjfhpz€€}|‰“—–‹Š‰~uqtwxskfgoy€~|€ˆ’˜—‘‹ŠŠvqsvwslffmx€~|‡‘—˜“ŒŠŒ‘Œwqrvxtmfeku~|~…—™”Š‹’„yrquwungdis||}ƒ–™–Š‹’‡{rpswvpgcfp{€}|Œ–š˜‘‹‹’‘ˆ|sprwwphcenz€}|‹•š™’Œ‹Ž’’Š}sorvwqicdmx€~|€‰”›š“ŒŠŽ’’‹toquwricckw~|‰”›š”Š’“Œ€uoquwrjbbju|‡“››•Ž‹’“‚vootvskcbht~|~†’šœ—‹’”ƒwoosvskcagr}€|}…‘šœ˜‹‘”…xonrvtld`fq|€|}„™™‘ŒŒ‘”‘†ypnrvtmd`eo{€}|ƒŽ™š’ŒŒ‘”’ˆ{qnquune`cmy€€}|‚˜›“Œ”“Š|qnquuof`blx€~|‹—œ”Œ”“‹~rmotupf`ajv~|€‰•–Œ””€smotuqh``ht~~|ˆ•—Œ”•Ž‚unnsuri`_gs}|~‡“œž˜‘ŒŽ“•„vnnrurja_eq|€|}…‘œŸš’Œ’–’‡yomqutlb^bnz€||‚šŸœ”Œ‘–”Š|plpuund^`kw€}{€Œ™ ž–ŽŒ‘––qlnsuoe]^gu}{Š— Ÿ˜Œ•—€rlmsupf]]fs~‚{~ˆ–  ™Œ•—‚tllruqg^\dr~‚{}‡•Ÿ¡›’•˜’„tllruqg^[cp}‚{|†”Ÿ¢›’•˜“…ulkqurg]Zbp|z|…“Ÿ¢œ’–™“†vllqurh]Zao|z{…“Ÿ¢“Ž–š•‡wlkqvrh]Y`m{z{„“ £”Ž—›–‰xmlqvti^Y_m{z{„’Ÿ¤Ÿ•Ž—œ—Šymlqvtj^X^lzyyƒ’Ÿ¤Ÿ•—œ™‹znlrwuj^X^ky€zy‚‘Ÿ¤Ÿ•˜™Œ{olqwuk^W\jy€~yyŸ¤ –—›Ž|nlrwvl^X\ix€ywŸ¥ –—›}okqwwl^WZhw~yw~Žž¥¡–Ž—žœ}okpwvl_VYgw~xv}¥¢—–žž’pjowvm_UWcs~xtzŠ›¥£™Ž•žŸ•ƒrjnvwo`UU`q}~xtx†˜¥¤›‘”ž¡˜†sjlswrcTQ[m{~xru„—¥¦ž“•Ÿ£œ‰ukmuyrbTPZkz}xrt‚—¥¨Ÿ“– ¥ž‹wmmtzscTOXjy|wqs•¤¨ ”–¡§ ymnvzsdTNWhw|woq€”¤¨Ÿ•‘–¡§¡zmnw{tdSNWgv|voq~’¤¨ ••¡¨¡{nnv{vfTMUfw|vop}‘£§¡–•¡¨£‘zmnv{veTMSev|voo|’£¨¡•–¡¨¤’{nmt|weTLReu{wpo|’¤«¤—‘—¢ª¦’|nkt|vfTJPct{xnn}’¤¬¥˜“—¢¬¨”}mkw}vgSHOaq{wnn|¦®¥š”—¤®¨˜nluzwgQGN^pztlnz¥¬§”˜§¯«šnntzxgQHK[qytmlw¥«¨œ“™¦¯®œomt}{gRHI[ovsmht¢¬©š’™¥°°ž„tnt€|iVGH\nutjet‹Ÿ¬¨™“˜£²²ž‡tnx|lWFHZkwuherˆ ­¥™’”¢²±¢‹tmw€~qXGJXjxthfo„Ÿ«¥š‘£±°£‹tov}qXIIUlxriel„¥¤œ’–¥°²¥Šuqu}€nWJGUktqkel†ž©©œ‘—¤¯´¦Šwor~mYHDThqrjbn…šª«œ“—¡±¶¦|pt|n[FDScoqe_l€˜¬©—–¢´·ª–~ry€~r[EDO^nma^fy–¨¥•”¥¶¸¯›x}‚„x\HDK^mi_\_t’¢£‘‘¤´»¶ƒ|†Šz`NFLali`WYqŒœ¢™‘ ¯»¶ˆ~~‹}gTHQdkkcVZo…™ ”‰Ž›®½²œ‹~oVKVemobV^p…›ž’‹Œ–«¶­ˆz€ŒŒ„pWPXcqtg]_k…ž’‰…“©¯©›‚w~…Š…mWSYhywib`mˆ™š•‰„”¦­«—}w}„…l[TViyunf`ršœ“ƒ…˜£­®–xw…“…n^OUlvvrc_s‡–Ÿ“ƒˆ’¡²­•…wv‹“†w`P\nw}s^`o~”œ‹‚ƒ‰¢¶«šˆu|‘eYaht|l^cj~–”‡‚|…¡¬§ ˆu}‡Œ’€fflu…f][_|–—’nz–¤«Ÿs|†˜ž„mc_r‰ƒui\g„“‘}pzƒ‘ž’€|y€“—†wpppZGd“¤”~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€{|}{yvvx{~~‚…ˆˆ‡…„…†‡…‚~|{|}|ywvx{~~…ˆˆ‡…„„††…‚~|{|}|zwvw{~~„‡ˆ‡…„„…†…‚|{|}|zwvwz}„‡ˆˆ†„„…†…ƒ|{|||zxwwz}€ƒ†ˆˆ†„„…†…ƒ|{{||{xwwz}€€ƒ†ˆˆ†„„…†…ƒ€}{{||{ywwy|€€‚…‡ˆ†„„„……„~|{|}|zxwy|~€„‡ˆ‡…„„…†…‚~|{|}|zxwx{~€€„‡ˆ‡…„„…†…‚|{|}|{xwx{~€€„‡ˆ‡†„ƒ………‚|{{|}{ywxz~€€€ƒ‡ˆˆ†„ƒ„……ƒ|{{||{ywwz}€€€€ƒ†ˆˆ†„ƒ„……ƒ€|z{|}{ywwy}€€€ƒ†ˆˆ†„ƒ„……„€}{{||{ywwy|€€€‚†ˆˆ‡…„„…†„}{z|||ywvx|€€€‚…ˆ‰‡…„„…†„}{z{||ywvx{€‚…ˆ‰ˆ†„„…†…‚~{z{||zwvwz~€€…ˆ‰ˆ†„„…†…‚~{z{||zwvwz~€€„ˆŠ‰‡„„…††ƒ{zz||zxvvy}€€€„‡Š‰‡„„…††ƒ{zz||zxuvy}€€€„‡Š‰‡…„…††„€|yz{|{xvvx|€€ƒ‡ŠŠˆ…„…††„€|yz{|{xuux|€€ƒ‡ŠŠˆ†„…†‡…|yy{|{xvuw{€‚†Š‹‰†„…†‡†‚}zyz||yvtvz~€€…‰‹Š‡…„†ˆ‡ƒ~zyz||yvtux}€~€„‰Œ‹ˆ…„†ˆˆ„zyz||zvstw|€€~€„‰‹‹ˆ…„†ˆˆ…€{yy{|zvssw|€€~ƒˆ‹‹‰…„†ˆˆ†€{yy{|zvssv{~ƒˆ‹Œ‰†„…ˆ‰†|yy{|{wtsv{€~‚‡‹Œ‰†„…ˆ‰†‚|yy{|{xtsuz~€~‚‡‹ŒŠ‡„…‡ˆ‡‚}yyz|{xtsuy~€€†‹ŒŠ‡……‡‰‡ƒ}yxz|{xtrty~€€~†ŠŒ‹‡……‡‰ˆ„~zxz|{xurtx}€€~…ŠŒ‹ˆ……‡‰ˆ„zxy{{yursw|€€~€…ŠŒ‹ˆ†…‡‰ˆ…zxy{{yursw|€€~€„‰ŒŒ‰†…‡‰‰…€{xy{{yurrv{€~€„‰ŒŒŠ†…†‰‰‡{xxz|zvrru{€~ƒˆŒŠ‡…†ˆ‰‡|xxz{zvrqtz~€~ƒˆŒ‹ˆ…†ˆ‰‡‚|xxz{zwsqty~€€~‚‡Œ‹ˆ…†ˆ‰ˆƒ}yxy{{wsqsx}€€~†‹Ž‰††ˆŠ‰…~ywy{{xtqqv|€€~€…ŠŽ‰††ˆŠŠ†€zwx{{ytpptz€}„ŠŽ‹‡…‡Š‹‡zwwz{yupptz~ƒ‰ŽŒˆ†‡Š‹ˆ‚{wwz{zuqpsy~€~ƒ‰ŽŒˆ†‡Š‹‰ƒ|wwy{zuqorx~€€~~‚ˆ‰†‡‰‹‰ƒ|xwy{zvqoqw}€€~~‡ŽŠ‡‡‰‹Š„}xvx{zvqoqv|€€~~‡ŽŠ‡‡‰‹Š…~xvxzzwqnpu|€€~~†‹‡†ˆ‹‹‡xvwzzwrnot{€~€†ŒŒˆ†‰‹‹‡yvvyzwrnnsz~€…Œ‰‡ˆ‹‹‡€yvvyzwrnnry~…‹‘‰‡ˆ‹Œˆzuvxzxsnmqx~~„‹‘ŽŠ‡ˆ‹Œ‰ƒ{vuxyxsnmpw}€€~ƒŠ‘‹ˆ‰‹Šƒ{vuwyxsnlov|€~~ƒŠ’Œˆˆ‹‹…|wuwyxtolnu{€€~~‚‰’Œ‰ˆ‹‹…~wuvyxtolmsz€~~‡Ž’‘ŠˆŠŒ‡xuvxyvpllqy€~€†’’ŠˆŠ‰yuuwywqlkow~€}~„Œ’”‘Œ‰ŠŽ‹„{utwywqljmu|€€}~ƒ‹’•’Œ‰ŠŒ„|utvxwrlilt|€}~‚Š’”’ŠŠŽ†|usvyxrlhkr{€€}}‰’•“ŽŠŠŽ‡~vsuxxslhjqz€}}€ˆ‘•”ЉŒ‰wsuxxsmhipx~€~}€‡••‹ŠŒŠ€wstwxtnhhnw~€~|†••‘ŒŠŒ‹xstwxunihnv}€~|…Ž•–’ŒŠ‹‹ƒyssvxuoiglu}€~|~„Ž•–“Š‹„zssvywphfkt|€}}ƒ•—”Ћޑޅ{truxwqjfjs|€}}‚‹”—”ŠŠŽ‘‡|truxwqjfiqz€€}}Š“—•ŠŠ‘ˆ}trtwwrjfhpz€€}|‰“—–‹Š‰~uqtwxskfgoy€~|€ˆ’˜—‘‹ŠŠvqsvwslffmx€~|‡‘—˜“ŒŠŒ‘Œwqrvxtmfeku~|~…—™”Š‹’„yrquwungdis||}ƒ–™–Š‹’‡{rpswvpgcfp{€}|Œ–š˜‘‹‹’‘ˆ|sprwwphcenz€}|‹•š™’Œ‹Ž’’Š}sorvwqicdmx€~|€‰”›š“ŒŠŽ’’‹toquwricckw~|‰”›š”Š’“Œ€uoquwrjbbju|‡“››•Ž‹’“‚vootvskcbht~|~†’šœ—‹’”ƒwoosvskcagr}€|}…‘šœ˜‹‘”…xonrvtld`fq|€|}„™™‘ŒŒ‘”‘†ypnrvtmd`eo{€}|ƒŽ™š’ŒŒ‘”’ˆ{qnquune`cmy€€}|‚˜›“Œ”“Š|qnquuof`blx€~|‹—œ”Œ”“‹~rmotupf`ajv~|€‰•–Œ””€smotuqh``ht~~|ˆ•—Œ”•Ž‚unnsuri`_gs}|~‡“œž˜‘ŒŽ“•„vnnrurja_eq|€|}…‘œŸš’Œ’–’‡yomqutlb^bnz€||‚šŸœ”Œ‘–”Š|plpuund^`kw€}{€Œ™ ž–ŽŒ‘––qlnsuoe]^gu}{Š— Ÿ˜Œ•—€rlmsupf]]fs~‚{~ˆ–  ™Œ•—‚tllruqg^\dr~‚{}‡•Ÿ¡›’•˜’„tllruqg^[cp}‚{|†”Ÿ¢›’•˜“…ulkqurg]Zbp|z|…“Ÿ¢œ’–™“†vllqurh]Zao|z{…“Ÿ¢“Ž–š•‡wlkqvrh]Y`m{z{„“ £”Ž—›–‰xmlqvti^Y_m{z{„’Ÿ¤Ÿ•Ž—œ—Šymlqvtj^X^lzyyƒ’Ÿ¤Ÿ•—œ™‹znlrwuj^X^ky€zy‚‘Ÿ¤Ÿ•˜™Œ{olqwuk^W\jy€~yyŸ¤ –—›Ž|nlrwvl^X\ix€ywŸ¥ –—›}okqwwl^WZhw~yw~Žž¥¡–Ž—žœ}okpwvl_VYgw~xv}¥¢—–žž’pjowvm_UWcs~xtzŠ›¥£™Ž•žŸ•ƒrjnvwo`UU`q}~xtx†˜¥¤›‘”ž¡˜†sjlswrcTQ[m{~xru„—¥¦ž“•Ÿ£œ‰ukmuyrbTPZkz}xrt‚—¥¨Ÿ“– ¥ž‹wmmtzscTOXjy|wqs•¤¨ ”–¡§ ymnvzsdTNWhw|woq€”¤¨Ÿ•‘–¡§¡zmnw{tdSNWgv|voq~’¤¨ ••¡¨¡{nnv{vfTMUfw|vop}‘£§¡–•¡¨£‘zmnv{veTMSev|voo|’£¨¡•–¡¨¤’{nmt|weTLReu{wpo|’¤«¤—‘—¢ª¦’|nkt|vfTJPct{xnn}’¤¬¥˜“—¢¬¨”}mkw}vgSHOaq{wnn|¦®¥š”—¤®¨˜nluzwgQGN^pztlnz¥¬§”˜§¯«šnntzxgQHK[qytmlw¥«¨œ“™¦¯®œomt}{gRHI[ovsmht¢¬©š’™¥°°ž„tnt€|iVGH\nutjet‹Ÿ¬¨™“˜£²²ž‡tnx|lWFHZkwuherˆ ­¥™’”¢²±¢‹tmw€~qXGJXjxthfo„Ÿ«¥š‘£±°£‹tov}qXIIUlxriel„¥¤œ’–¥°²¥Šuqu}€nWJGUktqkel†ž©©œ‘—¤¯´¦Šwor~mYHDThqrjbn…šª«œ“—¡±¶¦|pt|n[FDScoqe_l€˜¬©—–¢´·ª–~ry€~r[EDO^nma^fy–¨¥•”¥¶¸¯›x}‚„x\HDK^mi_\_t’¢£‘‘¤´»¶ƒ|†Šz`NFLali`WYqŒœ¢™‘ ¯»¶ˆ~~‹}gTHQdkkcVZo…™ ”‰Ž›®½²œ‹~oVKVemobV^p…›ž’‹Œ–«¶­ˆz€ŒŒ„pWPXcqtg]_k…ž’‰…“©¯©›‚w~…Š…mWSYhywib`mˆ™š•‰„”¦­«—}w}„…l[TViyunf`ršœ“ƒ…˜£­®–xw…“…n^OUlvvrc_s‡–Ÿ“ƒˆ’¡²­•…wv‹“†w`P\nw}s^`o~”œ‹‚ƒ‰¢¶«šˆu|‘eYaht|l^cj~–”‡‚|…¡¬§ ˆu}‡Œ’€fflu…f][_|–—’nz–¤«Ÿs|†˜ž„mc_r‰ƒui\g„“‘}pzƒ‘ž’€|y€“—†wpppZGd“¤”~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€tmpjWNuGb/horde-5.1.5/themes/default/sounds/theetone.wav0000644000175000017500000006031012233761325023134 0ustar mathieumathieuRIFFÀ`WAVEfmt ++data›`~~}~€}~€€€€€€€€€‚€€€‚‚€‚‚€‚‚€‚€€€€€€€€€€€€~€€€€€€€€€€€€€€‚‚ƒƒ„…†…†††…†††…†††………†………„„ƒ……„ƒƒ„ƒƒƒ‚ƒƒ‚‚‚ƒ‚‚‚ƒ‚‚ƒ€‚‚€€‚‚€‚€€‚‚‚ƒƒ‚‚ƒ„ƒƒƒƒƒƒ‚ƒƒƒƒƒƒƒƒ‚‚‚€€€€€€€€}~}}}}}}}}~}}}~~}}~}~€€€€€€€€€€€€€€€€€‚‚‚€‚‚€‚‚€€€€€€€€€€€€~€€€€€€€€€€€€€€€€€‚ƒƒƒ……†………†††……†„……„„………„ƒ……„„ƒƒ„ƒƒ‚ƒƒ‚ƒ‚ƒ‚‚‚€‚‚€€‚€€€€€€€€€€€€‚ƒƒ‚ƒƒ‚‚‚ƒƒƒ‚ƒƒƒƒ‚ƒƒƒƒ‚ƒƒ‚ƒƒƒ€€€€€€~}~}}}}}}}}}}}}}}~~€€€€€€€€€‚‚ƒ€€€‚€€€‚€€‚€‚‚ƒ€€‚€€‚€€€€€€€€€€€€€}~€€€€€€€€‚ƒ€}€€€‚ƒz€‚‹”’ŒŠ„ƒ‘š„zhk}€Œ€x…‹ ¡Œ†ys€‰†€zhfz€Ž–Œ€€ƒˆšœ†tkt€€}ni}‡‘›˜€€€€Ž’ƒwneh€€……zt€‹‘ž€|w€Šƒytjh€†Œ†}€‰Œ”˜€uqkt€}wtki~‰“Œ}}€€‹€snhh€‚ƒzv€Ž”œ›‚€}z€ˆ€wtlk€‡Œ‘Œ†Œ‹‘•€{xnt{}~…€x€€~Œ”†zkentt}qbdkt€‡€uxlt€‚„€tlt€€‹ˆz„Š”£­ª™•—¨¤›˜†Œ ©«ž §ªµ¼´¤›”™“”Š}‹‘—œ˜‰†‰”Œƒzqknytzxkntz€„ƒqqmktqje_Z\lmqukkqqw~znjh_hkehe[_hnr|zntno{ynh`VVhckq_bqw€”’z‚zu‹ƒwznw‡{‹”‹ž˜ ­¡˜Ž¢žŠ”‘£˜§˜—©žž¬˜ƒ‡€w€‰twzjz‹ƒˆ€q}wnxhSUMGVdZ\g^h€z~ƒtkuyq|tahml€Ž†ƒŽ‰‘©ª£©˜Žš£ ©ª˜—¦¡µÁ¹¶³­¬»Â³¸¤•››£¬®¤˜ œ©¼¶³ª˜”š¥ž›z}…—š’†ˆˆˆš˜ˆ†qntzyt|ln€u€…€}{|q€ƒt€qgojmlwlhwkqzstqsknwhqoghkqszzt}€z€€€|zxz€r{vs}y{~€€}ˆ€€‰uytnokteij\kecedgW]XP\PPPJHGTPS[PUVQV\\SVWQ\_]ehagqqt€€}‰†‹‡’Œ‹˜—¦™£ª¥¬¸¿¸ÂÀ³¿¼³»¹­¬³­¯¼°¯¹°¬¸³ª¯ª›¡¤’—›ˆŽ“ŒŽ•’…’‰|‹€tztkhtbhtbnvnqzzp~|n}wpzztw€wx…€€‘Œˆ’ŒƒŽ†‹Œ}€‰‰”—˜‘¡ž“ ™’–˜Œˆ’†…“ƒ…Œ†„‹‚‹‰w~€vz}vqztq€€qztmtwnnpb\eZYaVQVSPY_S\\PY_YY^UJVPM\YT\a\hwltyjnzvt€wn~€|‹“„ŽšŽœ§››£›Ž£¤•©¤™£­§¬¼¥£³¤£¯¤›Ÿ˜†—œ‰—˜‡‘™’”£…•†€‘†x}vhx€pz€hn}t|ƒthtnf}zgtojz‡€€€€˜“›Œ€€†w‹w€€w€“’Œ—‰~•Œˆ”†y}€z€€€‰}‹š˜’’†w€€x…zhkmnttt~nx‡€}tfnshtnafjnt€|tznkwokh_VY_\hkbhqqz‚€zytmsnkkedhqyz€€€‡Š“”‘Œƒ„‚†Š‰‡ƒ‰Ž—£¤¢¤ ¡§­ª¦¤˜—››ž˜“—žž¦§ŸŸ›˜™š’‹Œ„‹‰ŠŽŒ‡Ž—’–˜‡…{}€wlqkhwzz€|uz‚ƒ†ztwtz‚€z€€€˜–š•Œ”‘’’ƒ}€}€‹†ƒ‡†…‘˜“—“‰ŠŒ†‹Œ€~‚€‚ŽŽ‹‘Œƒ‰Šƒ†ƒwsshhtnmunny}{‚€qutnsqice^`nknqkkpspusehb_egfimkp}~…Іƒ‡†„Œ‰€|w€†…ŠŽˆ‰’•š ž’”‰“’ŽŒ†ˆ•‘› ˜›žž ›†‰†€€€y{ˆƒŠƒ‚ƒ€}ƒ€twqitwt{€z}ƒ€‚‰€z|tmsqklkehtt}ƒ€€†ƒ…‡‰ƒ„†…‹Œ––—žžŸ˜’•ŽŠŒŒ‰‰Š†Ž—“›žœ›šž—™“‰†…††…€†ƒ†‘‰‰†€}{€wuqdhhiswtotvv€€zzkdhhhed\Ya_nwptnqqwtyneqpz|}{t…ˆ”£˜—’Œ‘–ŸŒƒt€‡Ž™•‡‘˜¬¤—’†ˆ‘”ˆ†z€Žœ™ŒŒ‰Ž’zzkftptpmigzw€ˆy{tqtvzikb[hjqwtqp}}€ˆ€tqhntsikjet€‚ŽŒ„‰‘’–ž’…‰€€‘Œ‰Œ‰…‘žš ¤“•˜“—˜‚…ƒ€Ž–’Ž•Ÿ›šž‰Œ€€„zrvvoz€y€€w€‚zwznhnheqhdoqnx}uz€tx}nknc`heakkdtxu€„€€…€€‡zz„z}ˆ‰…Ž”‹—¡™ œ’Œˆ‰“†‚“€{‹‰‹¢¡™¢ž•ƒ€‹†}‹™€t€€k}‰’€qqqh_tzbkzhXhzqz€twn\etqetz\\nhh}—‚€tz†wzŒ€…‘†€”ž›¡®¥†‚‰˜Œ‚‘z€Ž’‰—«ž’–€w…Œ€ˆ”‰t{…z€Ž›“‰“‡tnutfn€tktpbbt€ˆ•†kmqbbsynitkbklnjr…~€†€kbpnn…‹ƒ€}{x~ƒ—¢œ©¤’ˆ€zt…——¤žŒ‰~…‘§­¬˜’Œzz‰‹” ’”Œ€„‚Ž£¥¤˜Œtepnt…‰|wnkkl€Žƒqe^VPhz„yh_Yhry€ˆ€hhhPM^hk}Š€ynipn€›˜Œqn€|€—›’”–‰…‹—©°¤’‡€qt–˜—¬¤Œƒ‹‡—¯­ž—›ƒnz†tw—ž†ˆŒ€bt‹„‰•t\fhP\€zn€‰tbttfw‹‡{tbJ\phq‹€nnzphˆ‚”†xnnle}—˜•—’zt†ˆˆ§¥˜ƒtqr|‰š ›‹Œ€€££ ¯¡†}ztx‹ ˜’ˆ€vwŠ‹‹›ŒzwhVVeqt…‡}qkknn}“ƒz€tV\ddh€‹„†nmhq……‹‘€nlhdh€‹Ž’މƒz€”¡˜ƒ}ztn€‹’™š›˜†‹•Ц¡˜—˜€wƒ‹‹¬¨¤š•’„“—’€wwkh}…ƒ‡‰€thkrmw„zqqbSVehn€‰€zvlhn{‚€ƒƒnelhez‘••ŸŸŒ„‹‰‘£¡Š†qj}…‹—¡ž‘‰†z}‡‘‘†tlpt}—¦¤£™Œ~€Ž”£›Œ‡}tp}Œ‘¨¢˜€yqen€ƒz~pVTV^h}Œƒ€}jd_hqlw‚zhhdP\t€‹“ž†tzvz€—¥’˜€k}‹‹¯°•’€kz‹’’•œ€ezwo€£¤— ¡ƒz€ƒ€€¤’‹€_€›£¸°Œ‡|~‹—˜‰ˆ†hWhsh€¦˜†tVNbnw}~z\KYRPq€tSV[\e€—•‰€}he‹Ÿ µÅ°ŒŽƒo€— ¡¡¡wr€€…©¹¤š•€\h}~Ž˜†qih`q‘œš£¤€kokh€—˜˜Œ€tbh€Œ”£ž†rk_Yk}€Š†wnUQ_bt‘˜‡{nVHVel}ˆ€te_b`t•ž¡£žƒpsu}‘£©§™Œ|qw‹™©¸³˜„|kcz‘™›€hjqt‹ «ž’‰k]hw€”£žŒzohcz”ž¦ª¤ƒnqje}”•‰€eVdt}‹—˜€mhVMbttƒ€hSXVZt‹˜‰†iYh}‹£ª“„‡}t‘£°´¶³’€€|z‹£ªž˜’shw~ªª’€tc_h~†‹whlen€”¡˜’†h_gt€ˆ›†|teat‚Ž—›“€hbV\h€‰ƒwYQ\er€’ŒyqbSTbv}‹™•€twnw‘¦²­­¤€y~‚‹—©§˜’‡zt€‘—ª¤‰wshezŒ“†h_ht€‹¦¤ŒŒ€jetƒ€‹¡›†zzww€ ¨œ˜’tgmnt€”€}nb^ezƒ‰q_`VPetuxwhchqˆ¥“‰ws~¯¤˜†ƒ‘¦®ª§¤†y~}}‹¡˜Œƒqqx…ŠŽ›˜€twnetŒ‡ˆ‘†nhnqzˆ—žŒ‰†wjq€z}•Œ€zskeq€‰„…ƒn\ei_h€zktq\Vbnqz‹ƒvwvht˜ƒ}†‰Ž›§¥ž˜“€€‹…‹ ›Œ‡tq€’˜•Œ€moxqwˆ†€…†wq|{~Ž—˜‚|yp{‘•—’€t€€}ˆ‘Œ†‚zhcqpr€‰tmk^\nz{zzsj_`nhk€ˆ„ˆŒ€tz€‰š£¥¡’ˆ†…—˜ŸžŒ…Œ‰…‘™—›˜Œ‰wt€€„‘˜†|}nk€‹Œ”Œƒwu~tt€Œ†‡Œ€n}ƒ€‹—’†zyvkq€€t}€nfsqbnz{{vhV[ebkz€nhtmj€‰†‰ƒ€ˆ…€…”™—›žŒ}Š‘—£¤’‡z€‹Œ…‹•ƒ|ƒ€tzˆŒ…‰zjt{v€‘’}ƒvq€Œ‰ˆ•˜„…€t}‹‰…’€nwvpzŒŒxz|h`ntno}yhhkb_hyzx…‡zt}€t€”‡†„Ž••—£¡’”—€ˆ•™•Š…„Š—˜Š‰€rz€}‚‹‰€€}w~††ˆ}}zu€Š‰vsz{}€„€xwtnilnmtzwqje_bmrvwskehnqx‚ƒƒƒ‚€€€‚‹—››’Іˆ‘—ž›”ƒƒ‰ŽŒ“”ŒŽŒ‚€‚ˆ‰ƒwwwt~ˆŽŠ‰†€€€€ƒ€ƒƒƒ‚†€z€„‰‘yvwz~ƒƒxsqooryvwzx|tmlggitxv}vqtzƒ‚ŠŒ†„‹‡”Ž—œ’‘“Œ†œ™•˜ƒ€‹•‰Ž˜‡z€‡€z‰‰y~‹€€Š€x€‘Š€‹†vt}‰‚‰“Œƒ„І~ˆŒ€z€€wqtoks}{y}wkhntnpwjdche\pzw€…Œ}zz}‰‘Œ‚‹‰~€‘——£˜’—™Œ€–Œ‹”’€zŠƒ~”œŒ‚‹Œxw…‰€~Žƒt{…wpˆ„‹Œ{z…}€‹‘†zƒ€qx…€x€Œ€z€pkz€wz€_ewhcz€tl|}hn€€v}”‰v€‰tn‹”‰‘¢ž†‹’—¢•†—˜z€”Œ}‹¦˜…—˜€z‘’€€‘ƒhr…wq€’†€”˜€€‰z€’†w€…tq€Œ€€—˜€€Ž€lzƒwq€z_cqmht†€nyzhatnbhztjtwkn}…†ˆ›˜y€€|‘žŒˆ˜Œz€‘Œ…• ˜‰—˜€€—~‹›ƒl€€pt‹’€€˜Œt€—€r‹•zw‹€ht…‚‹žŒw‹wt‘Œkt‡n^nznn€†}v€€hq€wjq}h\qh_n~‡€†•†w€Ž€}‘’zz‹€t‹—’”›ª˜‹ž˜ƒ€”˜€ˆ“€t€…€ˆš˜‡‡’†x€Œ€w~†tq€zw€‰’Š’’€€†€€†qz€tq€†|}‡‡z€‡€qt}ti}z_erndq†ziz|nk}†qqƒ€hq…€l€†ƒž†‰“’„‹Œy…‡wq‹’€‹¡˜‡”˜†€‹Œzz‹€htƒzq€œŒˆœ’€€Œz€‰€it…tq‹€€š’€€†tht€tktt\_z}p€€p€khztbh}zht„wq‹‹ž’z€Œ…‘˜Œ€‹“ƒ€—›Œ—ª›†”˜ƒ€‹“†ˆ†tt‹Œ€‹œŒ€€ˆ†€€‡†uw€zw€”†”Œ€ƒƒ€~}}wnqsns}}‚Œƒz€|ttstqnkkihnzz}Ї€„‚€}wyztvz}wzŠˆ‹œœ˜”“’…†‡€€€‹‡}€ƒ†—¤Œ‘‰ˆŒˆ¡€nvt—€ˆ†f€‹£¤‘›€€‹’ttvz€Ž€e€z‘†ƒi€†€Œhkhh‰€}h\rn‹˜€|m€€€Œkoht•€ƒtgqz£˜‹˜€‹“ž€ˆ€ˆ˜‹˜€nˆ‘£ž¡˜z—˜—’yn€˜†hqyz£¤”€~•„—˜€te€Œzƒtke€©’‹Œzxz•€esk~z€‡\bz€ˆ—€f€ŠŒ€rt\q‡Œ€_tnn—¡“tqk€˜€h`€Œ…š†tb€§œ˜€t€¯˜€€m€}£§hmh‘ž—¼€ez‹­Œ”€Vz‘·ŒktVt—¬˜hxo€©ž’VPz€šŒv\B€›—˜vn^z«Œy\Yjt£Œ\JP€—›h_h—¤‡†PPh€±€kh\€£Ä°q€x—° ˜\h„”·˜‰h\§¶ž€€n£¶›†Vht—³†pSh—˜¸˜dkk›‹€D\r‘°€qPP†‘¯†ejb—¡’€Hei€ª€tP\‰‘®€nhb—˜‘€P`h—ª€}PP€‘¶†rhh ˜«ŒShn—¤‘€Gh…¿˜‡kn£¨°€hne£³˜€Ynt—¶˜€_t¡ž©€VP\—’†€D\t£¶Œ€\h‘£°€QWb—›˜€>Pt—°’€Pb” ¤tPJP‘žŒhJbn—¶‡vVh—«€PLb¡˜ €Ph€¯°Œ\z£¯¼€qbh¬±¼€\~€»¼ªŒS€–£°€hDh¬¡¤nV\b¯¤‰hPz}©°n^Eh’‘§€Z\tµ’€Pt€¯¤khDh‰£°VYZt£•žhJ}‹µ˜h9t ˜\hPh­žž\h€}»¤hD€‰£¤vtV€¶ž¤€t€—Τ‰hY€x©ž\m_‘¤—°V\w€¶€€\8z€¯ŒbtG€ž žPtt€»’ŒPD€u£˜ttJ€¤”˜\hb€¼€€\Pvh©˜bjS‘Œ‘žPej€³\P€€»Œt€_—¤¯°^€€—Èž¤hh•‹Ç˜‰€V£ž ˜b}h—¼Œ•\btz¯€q\\ †£ŒVoh£¤‹˜Phw€­€t\\‘µ€\wn£°£ŒGhl€¤€zP\–•¥€hkb£§”€Khb€žtzStŸ—³†pjz»°¦Œctz£¤Š€e€ ¯ÂŒsn€¢¡§€Ykt—˜…€YzŠ£žhkSh•šžhebhœ†Št\‰‹¯žvtPz›—¤nnht¥ƒ‘hP€{©˜onD€’‘¤hhbh¡€†hPxt¯˜tnM€‰£°hzh€­ƒ €h‹Ç¤ˆŒ\—ª»È€‘n€°…£hb€»Œ€€A€ƒ—¤WwPhžrPP€tÁ˜€€P—†©°c€P€¤w˜P\zzÁ€€€D‹€£˜SvP€˜t•Pb€€º€€hD‘€£˜b€P€˜€’Pt€€ÃŒ‹€b ˆ¯¤zo©°”¤h€†‘€ˆ€\”†£ŒbqZ€Œ€€P\n€Ÿ€}\P€‚£˜u€i‹˜‹†\tz€¥Œ|bh€€—†wth‹†xpYen‹›wqkh€‘˜€emu€Œ„z\\}‡zhh€›œ’€}}‘§’€t}— µ°†€…‘œšž€z“’˜€mh_z”–ƒdqhq”†zhhˆ†—Œtnh‘ž‘˜tlt‹ªŒˆ€l…„—€_tb€’‹’Vhtt•€€te†‹€_mV€ž…’ht€t¥€z€t Œ£˜_}r—ªŽ¤€€›—½Œ—˜€¯˜¡†bˆt—¤‚ŒVq€t›ntne—€€hGl]€˜}’b€Œ€¤t€€t©Œ €\~e‘˜zŒ\€†€žhthhŸ€‹€Pwk—˜w†Vt†€žht€t©Œ”€J}n—¤…˜\€˜ˆ¨€€€€Á¤¬ŒnŠt£°ˆk—˜‘ªhqht¥”€Pqf—€q€P€Œ‘˜h€t€¶˜œhYvt¯¤‘€\‹†‘˜aq_€°˜hPdb¡€xtY€€—˜Sn_€¤Œ˜V\nt­€€nY‘Ž©˜ezj—¶£ž\n}—Åž €t£ µŒptq¯³¨˜P\^}ž€|P\ˆ…žnPPP—›¡†Qhe€ª€Wtƒ—¶€rVh¡˜¨€U\V—›ˆ€Phn‘¤_hPbš—¶€P\P—Œ‘†Dz€—°nt;h¤—ÀhnP¯›£ŒV”€¯È€S€°Ò€nn\»˜—ŒHzd—°Zz>h›‘¼hP\P©†—ŒD€€©¶r€>hª£Î€nh\¯Œ—€J€k£°tt8hŒ‘¼hbPP£—€Mvh¯˜nt;t’£¼heP\¦’§€Y€€»°‹€M€¥»ÈŒ}hz­¦°€n€€¸§ŒhMt€£¤thIt‹”˜\\Yt¢Œ\Pt‘¾¤hPt”©žtnc€¤•ŒVOe€µ¡ŒhJn}—ŒhbV€˜—ŒSYf€¯˜†\Pz€©ŒnhY‘˜˜\qn—Þ›hh‹”Ǥˆ€h£¤©°\tq—˜›\Pyt¬€hhM—Œ—Œ?hU€³Œž\hŒ€ÁŒ€€V£ž¯˜Z}b—¼‘˜Pbz€¶€~hP——€MgT€¤‹’Pht€°nz\\—ˆ¯€VnM—¤—¤btq‘°€£€t¯’«Œz€}Á°£žP€†—¼’†Ph†t¯€bnZ€’€\}_€¤czht›ª€e\b¯¤£˜Vbn‘˜…ŒPh€}›€qt€–ˆ–€Pt|—¤ŒhKt}‘§€h\\€—˜tznb”Œtytˆ—©˜tt_€¶¥ªŒkh€®›§Œ_€†‘›†zh€€z’\e{tŽƒzPPyn—Œ_eShˆ˜znt©’‘ŒˆŒ‹§€z†i‘ž†ƒvth—¤q‰hP€}V\€€¤\h~z|”ŒU€Œn—€bxˆŒ—°€hžt‘¹Œ€‹Œ‚©°n‘€e—˜}hn—h\wD\“†€€nLt’w£ŒV}ƒ‰—¤€e—€€­€tƒ‚‰—˜\t†h—˜kmnt€©Œ_zP\—Œ…znbt˜t€€V€’…wbP€˜‹¤€b}‹œž›nt™€£°tt{ˆ‘©¤k€€€Á¤†€wn€­€t€Pt“€ypkb—¤n€hP€¨ª˜†VP—£¶€q€˜b€˜‚£†SYtŠ—³€JeP€µ˜€hbZ€°€€nM€„|t\h¯Œz†PP—´¶§€Dhž—мntˆ’£Ç˜h—ƒ—¼†hhwˆ¯°hb\M—¿ž€hP\¯°Ž˜P\‹•£˜€\t¤ƒ˜Rt£§’h9h€—€_VV}—«€\hV€›€nJ\t‘¤hhV\§§€RT\£°ž†Pb€£¼’€_h—¯¿˜zzz¯¼§Œbt‹¯¼›ƒVh— «ŒhTh—’t;Pq‘›ƒbEb€³Œcbt”¬°€Shn—¹˜t]bz£°€sbb—±˜t^Jb£ž„zPD€›Ž€Ah™Œ—ŒPJ€’£°€Nt‹—ǰnzŒŽÁË€ozt—̰qr\h¯°€€\J€§€nn8h­’€D8€›…§€>€’ާ’PP‹ƒ£È€\}q‘»˜Vhth¯°\eSP€­Œhk>P¯Œ€ŒPP€ž€€€<€žˆ©†PP—˜‘€P‹€‹¤€P\€w¯¼ht€e—¤r—€hÁ˜k€\Y—°€€†>h³€€˜\V—žt—€>€}£ŒP\•€€¼€\—€€ª€Ptƒt¯°\t€Y€¶†zš€n»˜b€h\—˜tztGh¡nz’Ph›€}”€Y—ž€­Œ\€Œ†—°€€¶†—¶€n‘“—¯°k€€b—˜l€†qzœ€P€\hž€|}vn€žn‹˜b—¤€‹Ž€t©°‹ª€t”‰”˜t€•hz€Pbuz„€Ztnh‹th}€€‰ŒhYh`€˜‰€~…”’ƒ€€¯¤˜Œz|†—˜’ƒp€Œ‡Œr}ˆ‹ŽŒtewt‹›€tyjxŒw€Œ‹¯°ƒ†th‹§’ˆhb‹€tƒhe‹“€‹€Rtn‹ŒSb€ttnP€€z£€Zt€t—°nt•h€ž€b€ƒ€¯¤bzh\—°Œ”˜k€µŒ€žnt¯¤‰—€\—°£˜\€«—žhP‹€}¦€Dnnh—˜ShŒh€ªhhŽ€—ƘSt\P¯°w‘€W€°€t†Pt¹˜…hD€Œb‘€6t’vˆ†DJ“€€³hP€€€¯¤Pt’n©°k€’ˆ¯×°r‘hhǰ€ŽtT€¤nnt>h­Œ…ŒPD€Œz—€D€’ƒ—€G\‘†£¶€_‹€‘¹˜bz†€©¤bbnf‘³€YeJ\£˜t}hP€˜twhJt§’‰ŒVP—’‘¤€e‹® ¬˜VhŒ‹¬°€az€€¯˜`t€ˆ©°€bwo—ÂŒkhSh£°€zhS€ž†€hZt¬¥‘’VP€‰›’w\h—Œ ŒPbt‘¬¤Œ\hz€®€k_b€—ª†ble—°™†Sbn€°†w\P}€—€\a_—°Ÿ’\bq—¶Œnb—š«Œqhb£°©¤bh}”ª˜Œ\hšˆ©ŒXYY€”†Fhhz»˜whhz‹¸Œnzc—±¡Œkqn£È—€_‹£¤€kPD€˜‘˜PD\w…‰€P\ˆ€—Œ_Sh‹‘£ŒVht‹µª†ht€—Áž€w‘¯·˜wwh—¶‰n\z §€}bV—ª¢˜nPb‹”›’Vb‡£¤€Yt’—»¤jqt€¦¤€^hf€®†ob\t§€p\P€™ƒhPb”{tPP€— ŒnPh”—­˜\h€•£¥€Pn|‹´˜tlt‹£¶€nzq—¹˜€ekw£³ƒhe—§¨Œt_h—˜Ž€Pe€‘›†tPbŠŽ§Œenz¤œ€Sq€—°’w^n…‘Ÿ€hhn”žn_kr—˜teS_€”ŒnXPb‹™’€ah}—¡•€iz‘ žŒ€v‰£¨ž†w~”³­˜€ptˆ¡’€pbt‹†tbb€Š‡k`z‰’Œz\b€‘£˜tmu€­˜t{}ˆ§˜tmw…•€ihWt’€xkbe€˜twhTtˆ†zh\€Œ‹›€q‹”–’’tt›’›˜tt{‰—£’]t|z©ž€tou€—Œu€hzƒ}tws€›€tth‹™œŒwqb€˜‘›€q~€…nh†”Œw}t…‹€_ty~—†ybbzz‘†u}j€‰€nxv€txhh‡‚ƒvwr—˜•˜z€€‹Ÿ‰‰€zŸŒ‡Œ{”˜Œ€€‰—’€Šhb‹€€‡tkq„t€Œb€Œz‘€q‹Œ{Œnˆƒˆ—™€zŒt€¤€€€kt‹Œq}€\€€l}tht‰€qŠhb†zˆnz’€‹’q€˜ƒ‘¤†t—Œ}£˜v‹’‚”›€~‰t}’€qƒtnŽŒt€€j€†v€€l€Œt}‰nn‘‰€–†t‘Œ€—Œj€“w‹žtn„qt”€s€zn‘Œh€€`€Œnn€hh‘€w‰th‹†x‘Œh€˜t€’tt”†€›€q”†}¡Œq‘˜€—¤€z’t€£†~Ž€w—˜t‹†k‹˜v}†hq—€znh‘†€—†n€˜z‘’n}‹˜€t‹€€—€r…€€‘Œknwm€Œzzwlz†zx€nn‹ƒw„€t…’‰‹‰€ˆ•—˜€€‘‘—Œ{…“’𕇂ƒ…Œ€z€z€„zvqux€„}~yz‰€}ztt}ˆ†ƒ€q}…‚‰€€ˆ’†…ƒq}‚‹Œzwqnt€‰tx€o}€ztl}‚ˆƒzhhˆ€}‰Š€€—€z†w€“‘›zu‹†x—’t‘˜ŒŒ€w‹‡‹ž€tnz”†j€Œk€’tx{€‹›Œ€†hq—€€—†}‘ž€z†p€›Ž“†kt‹€€š€k‹Œ€‹€hl~~ˆŒhnyh}Œth€€qˆ€_hnz‘“€ztf€ŸŒ‹˜€˜€€}”ž–˜€n€€ˆ’nh‘†|€hZezƒˆ€anwn‘˜tq€€}—Œl}„‘¥˜ƒ€tq‹¤€‹˜q€¤†zytn—¤„ŠnVtwvˆƒht›€}‰b\€”›†bqptŒu‹‰}‘ž€n…€‹­˜€|nq‹‰z‹€n‘’tnkXh—•†€\Snpz€k€Œ€‰€\hˆ‹ž€tz{‹¡†x‹€z—Œhnt}”§˜€h€–†”˜€€—’qtne€š¡˜thn}z‘›nz„‹Œ€^h…£˜}€tzŽ˜ƒ€—€‘«†z}|…—ª†zt_€‡€’€dtŽ€q‰h\‹“‹€t\bzs‹Œd€Œ}—•€e€~¡˜qwsz‹†‹‰v€¤€t‰t}ž€ww`z†~‹tk€†ww‰h\—˜‡—†pt~…”’€—˜z—˜hh…†…©žv€tw‹€€‰wg€ƒV\v_h‘tvi€‰Ž›†}‘Œz‹˜nt£˜”¤Œvx~ˆ—‰…†w”Œ\h‡z€¦’qukt‰ƒŒ•€w”’n€’iz¡€‰wo€ƒ‹œ€z—Œz‘Œht•€€˜t]mjwކ€‘€w‘€bt†q€¢ƒntbh‹†‹”€€”Œ|‹Œn€¤Œ‘’tn€‚…€w†tt‰€cz€ŽŸ€kwo€“†Œ†zzŒ€e€€t—¥’€zjt‰†”Œn}ƒtt€te‹›‹žŒnt~‹••€€€o€nn}†ƒ—˜pnhn‰ƒŠŒzp}†hhwbt—œ‰€tcz†—«Œˆ•ŒŠŽ’nh•Œ•›€nhw…ŽŒ‹€z›†tltqw€eeVn}ˆ›‰€w‹Œz‘€tŽ£©’€n€§ž€€ƒ‹†\h„€€hPns€€ttYt†qwdrw‹­ƒtn‹Š£ªŒ†€—’‘›€€£³˜Œvn~€—€itaq}wkPbn€¢Œ€hVt€€€wb€Œ‚pt{”¥‰nt”¬¤‡€€‘Œ‹Œhnz‹ž†wbeq€£†xƒt}ЉnYqt€žŒy\\z‹’ŒŒ€q—›Šƒtqw—Ÿ†hn‡‰£›€x€Œ‘†\qƒ‘žzhjq‹¤€}ƒjzŒ€hett”ž‰€\Yw€…‹Œnt’‘€€Ž©¯ª˜vˆ‰‹¨˜wz€ƒˆ–€btt‹˜†yh\`€€eth\zzqikk€£ž˜nw“—¬›€—¥”’€~‹™—›€q€t€˜€kqul€€VVX`}€{mdYh‘†€Œzwˆƒ}v‹©¡¤˜€‚”¡œ¬ž€—™Œ€h`z€€†hendz…thtwn‹€bhkt‹™†z€kz£Ž˜€}”˜‰—’|—¤”˜†hn|tznh€txˆzhq}€—˜t}tez‡wzŒtt€w€€ˆ—™€q‹›„’˜€xŽŒˆ—Œ€Ž“‘˜Œw€€r‹˜t}Œtr…€bqwx‹†x}nb€w€nn…€r€€w…Ž˜Œƒ—˜‡—¡€€—†€‘†r€Œ…ŒŒtwzo‹–€€„h\ztYntbt}kmlh€‰€Žt€žŒ‹¢Œ}—¤—©›€”‰~’t€tz˜€h„tn€tV_YVz€d}tYq†zz“ƒ}Œˆ’€ƒ—˜ ˜y—ž‰—˜ƒw‹“ˆ˜€ntbr€thntYt†iqzst~€qxow—€€€r€›†€ž†ˆ¢›Ÿ˜Ž”˜“¡Œqˆ€qzƒnb€€{‹€tnl…€pone€Œwzzr€’€€†‹•’”‡€ˆ™†…€z‹†|€yx‰‘€x~{€‡Œ€vˆ†‚…ƒwhtƒ€~xwsr‰Œz{tnz€stz€††‹†|€’š–˜€…Œ†€ƒ}~Šˆ†tq}tyƒ€tq€€w}wlenzturtwt‹’€‡ŒŒ…‘žŒ‘••˜‘Œ€€Ž•ƒ‰’€}‹†€€‚|~~}}b\n^`tveh}nr„€w}„ŒŠ„‹Žƒ‹£¤’ žŒ‹˜—›˜Œ‰Œ€qzˆ€x€t`bpkhnopjtˆwo€€qz‘ˆ—’‰‰‡Œ‰”¡˜Œ—’€‘ž•‘’†mqtt|w~€kt|tm}‰w€€uvwtz€€‚w€€z…€u€›•‘œ†€€ƒ‚ƒŠƒ€~ˆ€t€~…‡‰‡ttz€‚~‰zn~yzwwzx„ˆŠ†w€€}‘“Œ„‹†z€wqy}‘™•ƒzt‰•‰’Œ€ƒ‹‡€€€€‰‘†trz{€‹€lw~z|vkelw€€tjhet‹Œ‰ŒŒ”˜’І”£¨§ž†yz†Ž”’†ƒ…ˆ†€tqz„‰†t\V_kz€zjnz€‡†€ƒ” žƒ€€‹£¤•‡‰–†vz…—Ÿžt_\zx€tchwqbgeh€ŒŒ€her€…‘˜t€‡‘ƒ€‘¢£²˜{ˆ€‹£ž†€ƒjt†_\kk€“ŒnaPP€†zŽ€kzˆzn€n€¢™ž’tp€Œ‹£ž€—›†ŒŠtk€˜tee_tŒz…†k€Œjo{€‹˜tk\\€€…’ƒu€tnƒq€ž’zn`q‹¤Œ}”Œ€ˆ€w—˜—ž€tnr€‘y€€l€€hlz„‘¡˜|qVe€€ˆ’†t€€ktzz•¦¦Ÿtn€ƒ‘§Œ…ƒ{ƒ€q€ŒŽœ˜zqkh}{heth_kqyˆ’†|n_tˆ‰£ª˜Ž”†€ŽŒ‘§§£¡†otx}”Ÿ‰††pqnbafnzƒtbcPPt€€Š‰€zwz€…—žš›Œtt€Œ•­§•Œ„‚€€„Œ’†kca_h€‹ƒ‚}nnjpuw…”“ƒ{q_h}‹—›’€~|zˆ‘” ¤¡˜Œ€twzˆ–€}qgqwt€‡Š‘Œzle]n‹Œ”˜€krwt€ŽŽš™’‘€qw‹‹—ªŒz€ur}‰††Œ”†pxqz‘£›‰te€|€‡‹‘ŒŒwnhZ€˜”¢˜t`nsn‰€}‰€Ž„tsw…‹©°‘Œ}€‹’ƒ‰‘–€{n]qˆ–Œ‰†\hqn|v~|zohPP€‚‘›‰tk€|‹–Š•‰—ªƒwzw€¯žŽ|yxˆŒƒŠ‰—Œtt\Ph€Ž€ƒkThmz€}ˆ†ˆ‰ˆ€\t‡‹£¤“€€Š†”’–Œ£¤Œ€hnn€¤†€q]`ewqluz‰€zzXb€—™”˜€q€‚‡ˆ••š˜€mˆŒ—¯ª’€}zt€z}€z‘Œtmccn‘¤ŒŒziqt€}x}ˆ’€…€Yh€‘˜›’tw€€ƒ€‡Œ“Œne}x‹§˜ƒzvw€†…€€•†one_t—˜…‰thz„ƒ~‚’‚†tRh€‘™ƒn}€Œ†…ŒŒ—ž†ltzt—­Œ…ƒtq€}ƒ€…—€rwb\€’€…†bbsoy~u~‰‹”€q‹’‘©§†…Œ€…Œ€ƒ†‚”›€k}nh”˜€wbbqhqwk€Œtz|hh•˜‹¡˜y€ƒƒ’…—›†—›t}Žƒ‹£ž…‹ƒuƒ€t„wq‹†bepVh‹ƒ€‰zixyw”†z—†t…€kz—‡‘§Œˆ‹™Œ…Œx—†ewtiz’}ƒhhznzŒz}‘€i€€b€’‡”’€u€w€™€€•€~”€m€†v‹˜z}zhtƒv€€z—€p€tn‹’†Žƒeqzq€’z€€z‰wq‰†…•†rzwo€Œ€…z€•€Œ…˜†‹€n€ƒ~‰†v}†tw€htЇ‰Œ€hqzr€†s}zo{‚tq€€‹¥˜…ˆ~›Œ‘’{‹€††€…›˜…‹€n€„€†€nt{ntt_n€€…Œ€fzƒ|‘“ƒŠ‡†‘’ƒ€‰—ª˜…‰ƒz‘˜„‹†x…z{tht„wtzhbx}w€€x€‡…Ž€y‡Œ‰˜€n……•„……†‡|†€~‘€qtkk€€qvlt}z|}wq€€ˆ†tw…‰‚‹†€†…Œ€€‹•“–˜€}†‹ƒ€|ww€zt€z€‰†{|t}‰€~w~‚€~‚€~‹Žƒ}}„„ƒ†z~x€~w}ƒƒ…‹ƒ{‚†ˆ‹†„ƒ‰‰…†ƒ‰Œ‰ƒ€€}€ˆ…†‚†€}€zz€ƒ€}}tw}}‡Œ†‰‰†‘Œ†”Œ‹‘†ƒ€€‚‰}€†uƒyz~}y€€u~tq|tt€„z€Št}‰€‹Œ‹‹‰‚ŽŒ€’Œ‚Œ†ƒ‹€€Œ€…ƒz€xvquth}zitkjr}ƒ€…€~‚‡†‚ˆ‡‰ˆ‹‰€‹Ž‘˜’‰…ŒŒ€€w€ƒ}tlnmqw{vktwtz|{{€‰Œ†€€‘˜ƒ†€~‰‰„…††Œ‡}u€‡‚€€zp}€vzwx€…†}wz…ƒ‹’€z~…‡‰„‰‹•Œƒ}€ˆ†x~uzƒ€€wy~€‰ƒ~ww€‰ŽŒ}v}€~w{€…Š}wwˆƒz}ƒ„„€qt|}€†vn{€…‘‚ƒ„Œ„ƒƒ‹’€z}tzŒ‚€vt{zztl€€yzteh€€}„wt}€‰ˆ€€‰’›˜}€‡‹‘›“€…€€‰€ƒ€w€‚€pqqhz€{vnpmw}|}t€‹‰‘‰ƒ|€’Œ‘“‰†‹†‡†‹Œ‘•†}y}€€‰€opmqmtwitz}|u{uz‰‘’ƒˆ†}‹†ˆ“‰”˜ŠŠ€‹•”–Œ€zŠ€€€}yu€zsqhwv~Œ€zw}}z€~‰…†ˆ‡‚‹›˜†Žƒ€ˆŽ€ˆ‡‰€€wq€‚ˆŒƒ€pz€~…ƒƒz}†€}|~{|‹ƒ}~w}}€‡€}€‰€z‚zt€†ƒ€€tw}}Œ€‹‰‹’†€Š†…‰€|wv€„~Іz€†z{{x…{€tnwwz„‚}…†|€Œ†Š“’‰€ˆƒ†–Œ‡‰€}€z}ƒz}€zvqokruwtrxqx}€‚…ŒŠŽ…ˆ†‹–••“‘‰Œ–”˜’‡€€w~€}€qjnhkqvqt|qwwqwy€‹‘†‰€€ŽŒŽ•’ŒŽ‡‰‡…‘’’Œ€~ƒ€~„zwxqmkkilt{†ƒyztr}…†…ˆƒ€€~€€‚‰’•„}…‰ˆ‡ƒ‚}yvxz}‚vnttz…ƒ€}}yz}{}|€††‡€}xz‰ŠŒ’‰€}€€|„€ˆ‰†€wt{€ˆ—ˆƒ||€€wƒ†€‚ypqw€Šƒ€€pw~xw~€{…ƒqtst€‹†€€‹†‹•ŒŽ›‰zˆ’”›€{ztz†wzŠ€{€wbhzu€†uukjt~wzŒ…œŒ~ƒ‚‚—¤˜—Œ€ˆ†ˆ”•‘žŒ{„nh€…‡„€hehettlz|wznh€}…›‹„€€Œ‡‘’‹š˜†††€…˜‘’€rvs{}yuytcnhZn{€ŠŒ€pqmz…€‰Œ€…‹w€……¡š˜†€‚†‹‘’†Ž€~}qq€ˆ…‡zkkht€€€…ƒt}€kt€‚Š‘‡zzqz‰‹’†ƒŽz€†x‹•‘“ƒzvzy€›†‹•€€zr}Љrzln€‰‰ˆ€t†tt‚†ˆŽ€zyn€€}‘†ƒˆŽ‡~‹€€—›¡˜‰€tx{‹’ƒ‹€suuzu€Š‚‰€vnhtw}‚€nwwt€€ˆ‹•Œ‰€€ˆƒ‘™’Œ‡„}€„€‡ŒŽŒ|neht‚}nkknnqv{~}zqt|€ˆ”•‰†ˆ†‰‹”‘‘š˜“Œ‰ƒ€Ž“•ƒ€tqxyyt~zqynihkz}…†zmzzvƒ‡…ƒŠŒ€‚€„Œ››Œ†‡‡‹˜…‰‰‚}ztux€‡ww{kq€ƒ€€†z€†€tt€†‹‘“€zˆ€…•‹‹Œ‰†ƒ}ƒ„ˆ—Œ}€}z€‘Œ†z}€yzwot€€w€wi}„„†€…ƒ‚€tz‰†˜ƒu~€‹˜‰‹‰†Œ‰„„†‚‹˜ƒ}ts€zxzvz}z{tn}€}€€nn}z}ƒ€z}€ƒ…€~†ŒŽ›††Šˆ—’ˆ‡ƒ……ƒ}z~‰†zztkt~}yvtttwzqntz}„‡€y~ƒˆŒˆˆ‡‡Š†ˆ”˜†€€€†‹‡€wywrxwkr}}}wqt{€†€€€‹‰{€†‚Ž”’Œ‡‰Ž”–“’‡‰•Œˆ‰|€‹†|tusz€ysrwqt€toz€ƒ€‚€vw€ˆ†…‰ƒŽ’Œƒ‹‰‰—˜’‡ƒ‰„‰ŒŒ„|ˆ†}‚€zv}…z{wttt€zstsuq}€tz€ƒ‚‡€zƒ†€…Œ€…Œ€‚‡Š“”’ƒƒ„}€‡‡|zƒzrywqw}}~zz}vz€{wy|wzƒ€z€„‰ŒŒ†‰ŽŒ•’‰‰‰€…†€€…„€}zwtw~|wyztowwnv{zz}‚|€‚€ˆŒ†‹Š†‹•˜•’‰‰‹‹Ž‡€€}€}{wzwvvpsnrxxzy{zw€|z‚€ƒ‰Œ‡‡‰€…މޒŒ‹‘Œ‡‘‹”‰Š€x€ƒz€ƒtqvot~ws}yt€zrzwq}†z}ƒwz|€ˆ††’‡†€‹Œ†‹€€‰€€†}€ˆ„‡€p}zq€€qw}prttƒ|€‰€w€€y‘’€‹‰€€Š†ˆ’‰Ž˜ŒŽƒ‚€‹‰w€€wzzwx€€~€nnwpw€€t||nyzt€€††~…€…š’˜‹‘“Œ‘•‰’“Œ†€}„€€‰€zvrwwu€€w{wmnsw}„€€ƒz}‰€…‘Š‘„‹‰†‘“‰‰€‚€…‹†€zottt~vrwtnpyqzŠ€€ƒ|{wƒ‡‰„Œƒ}‰‡‚‹””Œˆ‰†ˆˆ†‰†€}€wnzzs€€wttqtww~€vz~tt€}x‹Œƒˆ†ƒƒ„…Œˆ”˜†‰€€‘Œ††€€||€€|€ƒx€€knzww€€pwqq}wy~||€ƒz}†}ˆ‰‰‰‡ƒ‹Œˆ‘‹•މ‰ƒ…”ЉŒ{z|z{}€w}€ywot{}€†€v}u}‚}€‚‚‡Œ€…†…”˜’Žˆˆ‰‰„…‡†‚}}x€‡ƒ†}stwx{wuxwz|vqt~†Š€„‚€‹‹‡†‹‰‹“Œ…†€…”˜Œ‰ƒu€†ƒ…€zt{|twnhwwx{tehut€z}}…†€w€€ˆ—††ƒ…Ž“Œ‹‰’’Œ†€‚‘€~nn|…€wpq|{€}ovz€ƒ}tktv~‹€€‚‹ŒŒƒ€ˆ‹—™‘€€ˆŽŒ†‡€€‹‡†€u{…‹‰†zmyz}†€qqz}‚†zz€Ž“†}|€”’†‰†‹’†…„€‹˜’ŒŒ€zІ‚‰€w€ƒ€~wjt‚‰†tqyz€Ž€s~{}ˆ†z}ƒƒ‹’€€„}‹•Œ†‘’„…€y…Œ‚‚€iq€tztq}€x|tew}}‡€nqzu€‘€z…€…‘Œ…ˆŠ‰•’€†€z‹•Œ†‹€~†€ƒz}…‹„zfqzq€€ss{|w}to}‰€y{}z‹€€ˆ‚‹“Œ†ˆ†‰–Œ‡‰zxˆ‡€„€tz€xzwt{„…€nn}w}‹ƒz~€€ƒƒ€……‹š˜‹‰‰€ˆ™‹„…‰‰ˆ€}|ƒ†‚†€qw}}€ƒ|vyuyzsxz}€ƒ€pw|z‰ˆ†„ˆˆ‹Œˆ‡ƒ˜’ކ€x€‰ŒŠ‚€zxw|zzzngnty}€wqwy€€€‚|€…ˆƒx}zz‹Š‡ƒ…„ˆŒ‹†ƒ‹’Œ‰ƒtozƒˆ†zzy{€|}{~€€„voww{ƒƒ€txz€ƒƒ…€„ŽŒ„ƒ}€‘“Œ€~}€ˆˆ„€…‰…†€tqz‚ƒˆ€vvr}zzx|€ˆ‡z}yzˆŽ‰…‚…މŒ‰ƒ‹•’‰ƒ{…Ž‘˜†€€{ƒ…‡€{€z€€sqkt€‡„w|tt€€€xx}€Š„€€x…Œ”˜’Œ†”–•‰ˆ‰‹”Šƒwt~~‹Œzwtyx€€tywz€wshkt}‰€}}s~…ˆ†€‡„Ž“Œˆ€}„Ž’ŒŠ€z‰†ˆˆ€}}ˆ†ƒ€qsvy€wptvzƒ€zzz€ƒyz|‰‰‰ƒ~…‹‰Š‡‰’’‡€}‚‹‹Œƒvz{z|vsx}€€tqpq†‚|zyz…†€€z€…‰Œ†ƒ€ˆ’“•‰†‹‘Œ‰ƒ€†ˆŒ‰€zw€ˆ‹z}z€€€yw}}€€tqnt€…†€€|€‹††ƒ€ƒˆŒ‡„€†ŠŽ“Œ‡…‹Œ†‰€€…„ˆ„€trz|€wwvw{€€vz|~ƒ€{ttw{‚€}…‰††…ƒ…ޒމ€€‚ƒ‰Š†}~y~wz}~~~zsww|€}vutq}‚y|{z€ˆŒˆ†€€ŽŒ‘˜‰Ž†‰‰€…Œ†‹†|x}€‹€u|qqzvnpsoz~twtr~„ƒ„€}ŽŠ…Œ†„‹“މ€…‘—™Œ†Œ‡„Œƒ}ƒ‚†€vtvw€†{z}uz‚{tzz}‰‡€~tt€‰‹…‘Œ’‰Š‘Š€}~…މz€€y€zw~€€…€yupz€~}t‚y€}€Š‹‰€z}††‘’ƒ€~ƒƒƒˆ€ƒ„†Ž€}t~…Šƒ|€ttwwtpw}€ƒ|znq€€††€yx€€€}…Š“Œƒ€ˆ‰‘›’‰†…ˆ‰†€}Љ|zqmw„ƒ€ƒwtytutsu€ƒ|€tkz€†‹Ž†€ˆ†‡†ˆŽ‘“•€…†ƒ‘’Œ‡††ƒ‡€zz€Š€wqkkt{€€tzzzy{}~‘‰Œ€}ƒˆŽ“‡ˆ…‹‰‚ˆŽ’†v~z}‡€zzztynq|y…‰zpuu€Šƒˆ€€}€z€ƒ…—’ŽŽƒ†Žƒ‚ƒy~zvz€„€†€myqt€z}vrthtzz…†€vwyz‹Œ‘‰‰‡ƒ€€……‘˜ŒŒ†|~ƒˆ‡‹‰€ƒ€}}zx}‚€‚ttwtw€ƒ}‚ƒ}}wt|€…‹Œ€yzt}††‰ŽŒƒ…ƒz€„‰—’‰ƒ|~ˆ…Œ€€~zz}x€ƒ€‹€z}wwzƒ€€Œ€€€u€ˆ”‚Š€€“ŒŽ‘‰‚…z}}‹†Šƒ}z€€x…€|„zwtpot}…†v~}w€‡†‚ŽŒ‡€z…†‹—’†ˆ†}ˆ’„‹’„†‡{uytt…€ztkttnz€v~†vtwlt€ƒ†Žw€€z‹†‘”’€Œƒ‹˜‰ƒƒ{u€x…†z…€uvtqzŠƒ€‡tqzuz€ƒ}…‡z€€r€‹ŒŽ‘†|…€€†ƒˆ…„‡†xzz…ކƒ€}y€€z‡ƒ~†€tswt€‰ˆŒ€}ƒƒ…‹Œ†ŒŒ€ƒ€z€ŒŒŽ’‡€„‚ƒ‡†‚‡†‚ˆ€twxx€Šƒ~€wy€~ƒ‡ƒ€…€v|zw€††…„€y€€…Œ„ˆŒ‡†‰ƒz€‰†‘†€~~…†…‰ƒ†ztvvt~†€ytmqrz€€}~‚|zuzƒ‰ŒŠŠ€}~€‹†…Œ‡ƒ†‰€zƒ…ŽŠ†zwyz}~‚€yƒ€uwvtzˆŠ†‚xzz{…‡€ˆ„}†€u€ˆ“•ƒ€}ˆŒ€ˆ‡€}„€owww…‡„€trx}z€‡t}‡€||t€Ž’‡‚„€…‘’†‹—‰Š’€w€‡‰‘’tq…|…„wz‰zq|txˆ‡ƒxoz€}‹‰}ˆŒ„‚†zw‹Œ“}|z€Ž’ƒŽŒ€‹Œ{zƒˆ‘Œ€}ow}€€|w€‡z{tmz…Љ€uqxy€Œ€}ƒ€€ƒ€w}ˆ‹•€ztxƒ‹‡€{~‡€vww~Ž“‰ƒzpz€„€y|ƒ€€qq€’†yz}€ŽŒƒ††‚‹Œzz€€‹—Œ€zwzˆ‰ƒ…€yƒ€vvtkz‹†€nny€ƒ‰„€ˆ‡ƒŠƒu€“•ƒ}€€‹“Ї…‘Œ{€‹„|vpw€‚‚zz†€x}vq€ŠŒ€rt|€‹Œ€‰ƒ‚‹€y…Š—’ƒz{…Šƒ†ƒ{€‰€y€z{‹‰€tqz€„€q}€y€ƒwzˆŽ€z}y€Ž‡€‚ƒ{…‰wz€€‰‘€yqtƒ€€†zw€zzt}ˆ„†€tx~€…Ž€{†€€‰ƒz~ˆ‰€€}z‰‘Œ†‰€zŠƒz€|}…Š„}wkw€z…‚ww€€x€wn}€„‡€ww‰‡†€‹Œ‡‚ˆ‰‰—ƒƒy}ˆŽ‰ˆ†x€‰€‚€{€ˆ‹„„znzy~†€z|€…‰z}ƒƒ’†€|y€Œ‰ƒ‡€€‹Šƒ‚ƒ‹”‰†€tz‚…†ƒxv}}€ƒ|u|ƒ…Іwuz{„‰„‚ƒ€…Œƒ|€€…‘’ƒ}zx€‰††€x€…€ttƒ†ƒwow€‡tz|z€€wqz€…ƒwxt€‹Ž‰ƒƒ~ˆƒ€}ˆ‚€ww‹‹Š‰|~‚ˆ‰ƒ€tzƒ‚Š€tnr~…€qzy€ˆw€…‹•€zwt…‹Ž‰€€€Ž‡‰€‚‹““†€vx……Œ†y{€…„ƒ€t~ƒˆŠ€vrw€‰Œ€z{}ˆ‹†€}€‰”’ˆw}‹ŽŒ‡}€ŽŠƒ}z…Œtlx€…Œƒyw}~€zy}…‹Œ€y~€†•…ƒ‚ƒ‰†~}ˆŠ‚}wu€ˆƒzx€ƒ€zwqt„ƒ…€klw|‚‹s}}}ˆƒ}}‚…ˆ€z€xˆ’†‚€~‹Œ€‚€}‹‡}qt‰…‡zz…†ƒƒ€v€‡‰€kqz~…€wz€‹}€€‹‰w|zv€Š€€€z€†€ƒ}€‘’ˆ‰€t€‰…Іz€„€‚ƒyz…†…Š€r}ƒŒ€€€{€Œ€~„€…†€‚€€‘…‹†|…‰€}€x~Šƒƒƒtr~€†€w€}€z|‚ƒ‡‰|{€†‰‚…ƒ€‹Š…„ƒ‚‡‰€€u~†€ƒzw€{}zx}}€yprxx€†|€€€ƒ…†ƒ€ƒˆŒ†‚ƒz}‰‰…†z€ˆƒ†€~‚ƒ‚ƒwt…€€Š€z}€€€z€ƒ€Ž‰€}€}€“Œ~ˆ|}„‚||y€†z€€t†€†€t€€€‡€€„…‹Š|€Œ€Ž•ƒƒ„€€ˆ„€‰€€Žƒ€}z…ƒ†w€…‚„€}}…„€‰€y€ƒ„‡Š€€‡††€‚€‚„€w€€}Ї€~z€†€‚ƒ}€…€z~zx†‰ƒˆ†€…‰‡‰‡€…Іˆ†€w€€‹ƒ{€zz€€|}z}wwz|~†z}|v€€€ƒ€‚‚‰†~…€€Š‡ˆ†ƒ}~ƒ|€€z€ƒ‚€€€v€€€†€}}z€ƒ€€ƒ…†‚‚€…„‰†€ƒy{„~€€†€}|x€ƒ…†€}z}|€ƒ}€ƒ€ƒ‚€€€…ˆ‰ƒˆƒƒŠˆƒ„„€€ˆ€€€}€†‡…„€}‚ƒ€…€|€€}|{xzƒƒ…‰}ƒƒƒ‰‚Ї€…†€€‚…‰€ƒ€|†€|„€~…|}~{€Š…„y{…„€‰†€‰†‚†€…‰„ˆŒz{ƒz|ƒ{w€€y€€v{{z„ƒw{qt‚ww„€€…€|€€€‹Œˆƒw€‰€€ˆ€~ˆƒ~€}††…Іy€‚y€„z}ƒ€€zy~ƒ‹ƒ…€zƒ†~€ƒ€ƒ…€||{€†ƒ‚†€z€‚}‚}‚ƒ€~{z~ƒ…ˆŠƒ€…„‚‰‡‚…††ˆƒ}€€ƒ‹†€‚…ƒ„€‚ˆƒ€~z}„†‡…}~‚‚ƒ†‚‰‡†…€~€†‰‰†€~€ƒ€€ƒƒ…†€}{€„‡‡€|z|~€€€€†‹‡ƒ‚€‚ŠŒ†}}€€€~|‚€}}vv}‚„€yw}}}wz|}€‚zt{„ŒŒ†‚ƒ‚‰„„†‚‹Š}{}~‰ˆ‡€}€€€{ƒ~yqx}‚††ƒ{~€€†€€€ƒ…„zz~ˆŒ†„€}}‚„€†€€ˆ}zz~††‡„}€€€„ƒ€‚‹ŒˆŒ€|€‚‰Œ†€€~…†‚…ƒ‚ˆŽ‰€€‚‰‰‡zw|}ƒ€z€‡‚|z…†‹Œ€~}zƒ€z€„€ˆƒyy{‚ˆŒƒ€x€†€}ˆŒ€€}x€‰ŽŒ…€{€€‚‰}}ƒ}{sy€ƒ‹†}zwz}‚}w€zz‚}vuz~…Œ†…€}††ƒƒ€}€‹‡wy€†ŒŠ„}|}}‡ƒ~‚„€ztz€…‰ƒxu}ƒ„‚„ˆŠ„€{€ˆ‰‰„|}€ƒ€{…‰„†€wy€„ˆ‡€{yz€‰ƒ‚…ƒ€ˆ‡€ƒƒƒ‹Ž‰ƒ€~€‰†ˆ‰€ƒŠ‰ƒ„€x€‡ˆŒ|zz~€ƒz}‚€ƒ†€y}ƒ…ŽŠ€€z}„„‚~€}€‰€~ƒ‹Œ…ƒ~„†…‡€{}„ƒ€ƒzzƒ†ŒŠ„€z€€†ƒ}€€ƒ‚zw{z€ˆƒzw~ƒ}}„„€}zw}…†ƒ}wxz€ˆ†€}€„„ˆz|…‰ˆ{z}…‰†„€‚†‰Œ€|zz…‡†ƒzyz€„ƒ…€€ˆ‰„€{x€‰‡…€tv{€‡„€w}‚ƒ‡{{…Љ€zz{€‡‚€€†ŒŒ}€‹’‰€}€††††}~†‡†ƒ{z€ŠŒŒ„z|~‚ˆƒ|z}‚†‰€yz}…މƒzz}ƒ‰ƒ‚€}†‹‰€}z€‹Œ†zz€…‰‡ƒz~ƒ…‡€uvz„‰‰ƒyz|‚‰ƒ|€ƒˆ‰€wtt€ˆ‰€xzz€ˆ†ƒ€†††}uqt€†ƒ{rsw€ˆƒ€{€„ˆ‰yu}†ˆŒ†zx~ƒƒ†€|€†‹Œyz~…‹Œ€z|{€‡||€‚ˆ„zxu}ˆ‰‚}yqxƒ‚€}yz„Šƒ€zw€‰Œ†zw€„„‰…‹ŽŒ‡}„‡‘ƒ€€ˆ„}€‚„‰‡€z{€‡Œ„‚€z€ˆ‰€~„‰ƒ}ww}…‹Š†€z€ƒ…ˆ†ƒ‰†…€wx}€ˆˆ€{}}€‰‡€€‚ƒ…†€xyz€…ƒ‚€}~…Š€‚‚€ˆŠ†€}y}ˆ‰‡ƒzw|€‚|~ƒ‚‚}vtx€ƒ}vxv{‚€|}‚ƒˆŒ}|}ƒˆ‰ƒ€}z„ƒ‚€€…Œ‡ƒ}€‹‰‰†|w}}…x€‚€€zu}€ƒˆ€}}z~‚€{~‚ˆ†€zw{‚‹‹‡‡€€‰††ˆ„…Š„ƒ{€†‡‰†€}ƒ€‚‹ƒ‚ƒ„„ƒ{z}~ˆŒ…†€|€„„†„†Šƒ€}w{…‹Š‰†}€ƒ„‰„€‚……†}z{|„†€zz}‚„€„‚‰†‚}zz€Š‰‰ƒz}„Љ††‰‰‰‰€y}€…І|wuv}~zzzz€„€wutx€…€zts|€€€}‚‰†‚z|†ŒŠ|~ƒ…‰†€„†…ˆ„}vz€ˆŒ‡€|vz€~||}}ƒ†€ywy†Š†€|}ƒ…ƒ„€€„‰†€}y{€‹†€}€€†ˆƒ€€†„‚€zrw„ŠŒŒ}z~ˆ†ƒ„………Šƒy}}€ˆ‹‡€~…‰„‡„€†Œ‰€€}x€‹‡†}{}€„…†€€‡ƒ…wrxƒ„ˆ„zwu{‚ƒ€€„ƒ‡{~‚‰†€€~…‡„ˆ„ƒˆ‰€€zz…‹†€|uw}}€t{|{}tn}€‚…zvz{€ƒ{€…†‰€{€„…‘††ƒ…‡‡ƒ€„€…Œ€€ztz€†€}t€}{{€€}}rz€ƒˆˆ„€€ƒ‚‰†‚‡ƒ‰‰ƒ€}€}ƒŠ€‚€}€€}}€€ˆƒ€€tx}†‚ƒ~€ƒ€ˆ„ƒ‡…‹‰†ƒ‚†ƒ‰ˆˆ†ƒƒ…ˆƒ††…‹†‚‚}€ƒ€€|}€|}||ƒ„‚„€w~€€ƒ†€€€ƒƒ†ƒ‡‡€€†ƒƒ‰‰…„ƒ‚‚ƒ‚€…†€‚„€~…€‡‚}yxzx€z€|sxz|€‚€„}}€|€ƒ€€€z€„†ƒƒ‡†‰†…€†€…‡€€€~z~€y€€…€|{z}€†€~ƒz}€}‚ˆ‰…€€ˆ‡‰‡†ƒ€…€€}€€€€y|€ƒ€~}}~~€}}€ƒ…€€~€ƒ†‰ˆ‰‰‰Œ‰ˆ††ˆŠŒˆ„€€ƒˆˆ„ƒ€€~}€€€~{zwx}€}|~€‚‚€…‰…Љƒƒ†ƒˆ‡ƒ††…†‚…‡‡‰€~|€‚ƒ}}}}~€}€„€€€z{€}~}€€}{}€ƒ…†~~€€‚€€~€~z}~€ƒ†€€€€ƒƒ€~€~}€„‚‚„€€‚ƒƒƒ„‚„ƒ~€~|ƒƒ„…ƒ€~„€€„ƒ…†ƒ‚€z‚…€}€{€}zƒ€€„}}}€€„†€…†€†„‚‚ƒˆˆŒ…‹ƒ†Œ‹Š‰Š†ˆŠ€€€}‚††‚€}x€€€ƒ}{~€||~wzƒ€…†€ƒƒ…Œ‡‚ˆ†…І€€ƒ‚ˆŒ€‚„€ƒ‡…ƒ„„‚…ƒyzxx€„€~~wx€€€€€…‡ƒ€}z€„…Š„|}€€„€€ƒ…„€zz{}†z{xxz}~z|}€}|xz„‡ƒƒ€}……ˆƒ~ƒƒˆŒ†‚z}ƒ…Š„€{‚€€€~}†…€}tw}‚Šƒ€zx}ƒƒ}€~‚€}ztz~…‰…€~ˆ†‰€‚ƒŽŒ†ƒw|ƒˆŽŒ†€…‡…Œƒ€„…‹‹†|v~}ˆ€}{{…†€€€‹†€}zz€Œ†…ƒz€……†ƒ€€‰Œˆ†€w}…‰Œ€}‚€……€~ƒ…ˆ€twz}††€{}z€†€€€€ˆ‹Œ€~|z‡Šˆ‡€}~„ƒ€z~††„€ztzƒ€…€uwy}zz{v}€€„|zz€…ˆŒƒ€ƒ€ˆ‡†„€ˆ‡‹Œ~~{‡‹Œƒƒ€~…ƒ€€}€€„€{yqz€€„€|z}€}€€|‚‚„ƒ}zz€„†Š‚‚‡ˆ‰ƒƒˆ†Š†€€}~ƒˆˆ„ƒ€€„„‚€€„‡ƒ€~z~…†††‚€†………ƒ……ˆ‰ƒ€ƒ†ƒ†ƒ~€‚„€€…„††€}}}€…‡€€€z€€€‚€€ˆƒ{€…„„†ƒ}€„‚‡„€ƒ…†‰ˆ€„€‚‡€€€}€ƒ{}€}€€zywwx€}zxz~~}{}ƒ€‚€}€‚††‰‰€ƒ……‡ƒ€€‚„…‰€}€}€ˆ‡ƒ~€}€ƒ~€}z€€zyww€ƒ‚~{}‚‚‚|€…„†ƒ}z€††Œ‰€€‚‚…ƒ€€ƒƒ‰‰€}||€‡‡€~}}ƒ„‚}‚‰„ƒ€z€ˆ‰ˆ‡|ƒ‡…Šƒ€…‰Š‰†€y‚‚‰ƒ|{~€ƒƒ|€€‰ƒ}zvx€Šƒ}w}„‚‚z~ˆŒ‡‰€w€‰ŒŠ€zƒ„‹‰€€‚ƒ‰‰z}€€Ž‰}zwz€wuvq€…€|tqt€Šƒzx€€‚€zxˆ‡ˆƒwz€Š’‰€}€…Œƒ~€€ƒ‰ˆ€wzz…‹„€yz~„|~w{ˆˆƒ}trz…‰‰ƒz}€‚ˆ†€~ˆŠ‰Œ€xz€†‹‰€z}}…‰€{}€‹‡|zx}…Љ€}{€‡‚ƒ…ކ€|x€Ž‡€…†ˆ‹€‰‰Š‰zz„†‹Œ€|}}ƒ}w}|€‹ƒ|zz{…‹ƒ€€z€†€€z€‹Œ„†€z‹‰€}…ƒ…‡}€…ƒˆ†€w~€€‹†z{{zwwzv€„{yyvzƒ†€€~z‚‚~€}|…‰†„€xz…‰‰Œ„€‚‚‚†ƒ~‚ƒƒ€wv{}€ˆ}~}~€}~€…†€}|x}„†ƒ…‚…„‚ƒ€‚†††„€|}€‚ƒƒ€z{}~}}€‚€}||~‚†„‚€€€€€‚ƒˆ‹ŠŠ†ƒ…‡‹ŒŽŠ†„ƒ„ƒƒ„ƒ…‡†€€€}‚ƒƒ€}{z}||€|€ƒ€€€}{€„ƒ‡†€€}€ƒƒ‰†…Š€€ƒƒ†ˆŽ‡„†~„„}€~†ƒ}€zw€ƒƒƒ€}|€}€y€z€}wu}€€‰†}€z}‚„ƒ~ƒ†z€€y€††ƒ„€{„ƒƒ~~…†‚‚€tw€~…‡€zzy}‚€~„€€‰ƒ}€€‡Œƒ€€y€†ƒ„„€€‰†€ƒ€x€…„…zx|y}z}ƒ€‚…zv~€ƒ‰‰€~€~…‰„††…‹‰†ˆ„†ŽŠ‡€‚ˆ„ƒƒ~…‡ƒ‚€zx€ˆƒ†€wxz~€{€~‚„z}€‚†ŠŒƒƒ†‚‰†„ƒ‚…‡‹†€„€€Œ‰ˆ€}€‡€€}ƒ€‚€|ww…†…‰€z{}‚„€}€|…€y~}€ˆ„}ƒ€~…€~„„z}|t€„€€}zz€ƒ€‚{€†ƒ„…€w€‡††yz~€„‡€†ƒ…†~€†Œ€€€{€€ƒƒ‹~‚}|…†€€}v}€}}zƒ€€…zy……„††€€†€ˆ‡€…†…ˆŒ†€ˆ†…Œ†‰†ƒˆ‰€ƒ†€…‰€}€}z……€ƒ€z‚€}€~z€†€€ƒz}…„†ˆ†€†ƒ‚‹†ˆ†‚‡‰€€…€ƒ‰‚†€…€}ƒ€}…ƒ{}}w}€|€z~‚}€ƒ€€‡„‚†€|€€€ƒ}€ƒz€ƒ}~„€‚†}zz{€}w}zv~€x}€~€†€€ƒzˆ€€‡€~…†……€‡‰…‡‡€€†€ƒ†€€‡€}‚€x~€}€w}~y€ƒz~ƒ}~„€y€€€†}€…ˆ„†€…Šƒ„…‚…‰†„‡ƒ€ˆ…ƒ†ƒƒˆ‹††ƒ}€„ƒŠ†€‚ƒ€„€}€€ƒ…€€‚…†€€~ƒƒ~€€…„€‚}€‰†‰†„€€†€ƒ€}€…ƒ€}ƒ€ƒ‰€}€€€€|z€~…„€ƒ~€„ˆ†€…€†€~€„€€€z€†€‚€|y€€}€zx}z}€{ty}w€†{€€„ƒ…ƒƒŽ‡‚‚€…Œ‚†€€‡…ƒƒ€}…ƒ}ƒ|y€€|}€tw‚z€ƒzz€€~…ƒw€€}…†€…€€ˆ€€‡€…Œ†€†…‚ŽŒ€ˆƒ}„‡€ƒzzˆ€ƒˆ€„†€‡‡}…†€†ƒ~€†ƒƒ€~†ƒ…‹Œƒ…„ƒƒ}‚€}€…€|„€ˆƒ€‚€‚„€€€x€„€…†€…ˆƒ…‚‚†ƒ€„†€…‰€€‚€€†ƒ€…€}„€}ƒ€}€z{yzz}€}{€|z€zx€€}€€z|z€„€€…€€†€€†ƒ€ˆ†€…ƒ~ƒ†€…†}€ƒ€€ƒ€}„€…€}€€~‚€z~~w€y}€|~……€„€}…ƒ…€}€‚~ƒ†€€ˆƒ†‡†ƒ‚‹ƒ{‚€{ƒƒ~€}€†€ƒƒ~…Š€€†€€Š‡€…ƒ€ˆ‹ˆ‹†}…‰‰Œ€€†ƒ‡€|€€€ƒ€y}}z…†z|€{€‰†€}}……ƒ„€~…‰ƒ†‡€‡ˆ…†€€ˆŠ‡†€z€ƒˆƒyz}€„zvz{}€€xzyx‚€wy{z€‡€}}z€ˆˆ„ƒ}}…†ƒ€|€†ƒ„ƒ{}…ˆ‰†€|€‚…€wz€…ƒzz~ƒ‰ƒ~€€€ˆ„|}{}…†€~}y€Š†ƒ€z~…†ƒƒ}z„…ƒ†€w}‚„††}}€€ˆ‰}€ƒ…Œ†}~|€ˆ†„€€€…†„…€‰‰„€}ˆŒ‰‰€~‚†††„|€‡…Šƒzwz€†‡€z|w}…€|zz…‡€~zz††ˆ‡€~‚‰†††}€Š‰Œ‡€~ƒˆ‹ƒ}‚€€…ƒyx{€„wvww…€y}wu€€z|zx€‰€€y€††‰‡€~…„€†€z‚‡„ƒ„zz‚€…†}{€}}…w€{…ƒ}z}{€‰€€†}€‰„€ƒƒ€‹€‚€w€„„„„}z…€€†€|‚ƒ€€t{z€|{††‚ƒ‹‡€‚ƒ€ˆ†‰‡€…‰„„‰…„‰„‰…ˆ†ˆ‡}€}€‚}~€€‚‡€{€~„‚€€€{€‚|}€…ƒ€…€€‰ˆ†Š„€ƒ…ƒ†‚…‰ƒ…††ƒ„‰ƒ€‚€€€~{‚z}{wz€€}€}z}}€€€€€~€z€‚ƒƒ€€€†€ƒ€ƒƒ€}x~ƒ~€}z{‚€€~„{†…„‰€€ƒ…‡‰†‚ƒ„‚‹‡€‚€€…‡€}€|z€€~z}‚€z}zt€†€€€wx€€ƒ†€€ˆ†‡Œ…€‰ŒŠŒ‚†„ŠŒ‚„‚ˆŽ†‚€€‹‰€€|z‚€€€w€‡€€€zz…†ƒ…€y€ƒ…‰ƒ|€‰„ˆ‰€}‚ƒ‹‰€‚‚Šƒ€ƒ€€ˆ†€z}{ƒŠƒ€y}ƒ‚‚„€z…†€€}w}ƒƒ„z{ƒƒ€z€ƒ‡€wy{€ˆ†€~zz€‚€€}€…€|zx}ƒƒ‚€zw{€€‚€}€†‰†ƒ~|€…ˆŠ}}€„††‚‚…†Œˆ}|€…‰†{vx~~}zx{€‚€}wu}ƒƒ‚€zx~€€€€„‰‹Œƒ€ƒ‰‰‘†ƒƒ†‡‰†ƒ…„‰Œ„€|{ˆŠ†‚€z€€€}|€„€€€xzƒ†††„€…ƒ‡†€…‡‡‡†€}€…Šƒ€‚ƒ†€€ƒƒ†„€zyw}‡ƒ€}|€‚€ƒ€…‰ƒƒ€{€„„‚…€z€€~€}€…†‚ƒ}}€}‚€}}~z}zw~€€ƒ€z|}€†€€}€€€€€‡†ƒ„€‚…††……ƒ‚…€ƒ€€‚„…„ƒ}€~‚€€}|{y}€€€€~|z}}€€€‚€ƒ€€‚…ˆ„ƒƒ‚…††…‰ˆ‡Œˆ…†ƒ‚ˆ‹†„…€€ƒ€€ƒ€€†ƒ€ƒ€}…‰ƒ…„~ƒ€€„€€ˆ†„ˆ€}ƒ†ƒ‹‰€‚ƒ€€†}~…€ƒ†€z€}}ˆ†ƒ…†}€|€‹€€z}ˆ†ƒ‰†~‡†€…ƒz€‰ƒƒww€}€ˆ€{€€zƒ€v€€|€€wvzw}„|z€z~ƒ€z~}zˆ‰„€w€ƒƒ…ˆ€€†€‚†€€ˆ‹†‰ƒz€€€…„€|~}€ƒ}{€€ˆƒ}}z€ƒ}~~€ƒ}z}z€ˆˆ„~{€…†ˆ…‚„ƒ„€€ˆˆ‡‰ƒ€€ƒƒ…‡€€ƒ‚ƒ€}{€€ƒ‰ƒ€€‡‰†ƒ‡…†‰‚€~…‰‡ƒ€}}ƒ†……ƒ„„€z}€€‚€zz}~€‚ƒ€‚……†ƒ€‚ƒ…‰ˆ€€€‚‡†ƒƒƒ††ƒ‚€€€…‡ƒƒ€}}}~}}}}€}}zwz~€€z}|{€}~€}z}‚€ƒ†…ƒ‚ƒ‚…ƒƒ€€†}€€ˆ…ƒƒ€‚€€€€€ƒƒ}€|{€‚ƒ€‚€€€€}€‚€€€}y}€}€€€€€‚€€‚…ƒ‡‡€€€€‚†ƒƒƒ‚ƒ€€€ƒ„†ˆƒ€€…†‚ƒƒ††ƒƒƒ††‹Š‡‡ƒƒ…†ƒ„…ƒ„†‚€}€ƒ„ƒƒ€z€~„€}€€€€€xz‚€…„€€ƒ…‹†€ˆˆ‡‰‚€€€…І…ƒ|€†‚…ƒ€†ƒ}€zw}~~|yst}z€z|€ƒƒ„€y}€ƒˆ€€}€…†€ƒˆŒƒ€|}†‡€zx€€~z|€…„‚€y~„…Šƒ~}€€ƒ†€|€…‰ƒ}|~‚‰‡€}z€„€|zz€†ƒ~}vz……††€{€„€‚{€ˆ‡‰†}{€…‹†…ƒ…Œ‰€……ŠŒ€€€|…Œ†‚ƒ€~‹‰€ƒ€€†Š‡€v{†€ƒƒxz€ƒ€€z€†…‡€wx~€ƒŠ€z}€‰†€€†…Ž€‚€€‰Œ…†€~‹ƒ}€~€†‰€€zs}ƒ}€}tt}|w~xt€‚‚…€z}‚ƒ‰‰|~€…€y€‚‰†}€}{…ˆ€€€z}|y{y}ƒ€~~zz€‡…‡ƒ}‚†ƒ…†€€††…‰€}€€‚††€€ƒ€‚}|}}€ƒ€wzvv€€}|~€€‚€…ˆ†……€†‰‡‰†…‰‰‰‰ˆ„†‰ˆ‹‰€€ƒƒ€€€ƒ€€‚‚†‡€€€}‚ƒ€€€€€€‚€†††‡†€€‚ƒ‚‚€€€€€†ƒ…‹‰ƒ„…€‚†……ƒ€€€€~~…€„ƒ}~€€ƒ€€}y}}y|}€…€z~~ƒƒ„„€}€}€{€ƒ€€‚€z~€ƒ†€}|€€{~€}€ƒ€{|~†‡ˆ‡€†…„‰†ƒ…‡ƒ€€~€ƒƒ…ƒ}~‚ƒ|w}€}vqrw€€|}|z}ƒ‚€ƒƒ…‹Š†€ƒ‰ŒŒ‹†€†‰‰Š‰†…‰Œ‰†€€€€…†€|}€€||€„‡†|z{€Š†ƒ€~}€†ƒƒ‚ˆ‰‰†€€†‰……€{€‚„€}€…††‚||}‚…‡ƒ}~€€~€††‰€}~€…‰‰†€€€‚}z|€{zyzƒ……€|}€‚ƒ€}w€‚}wv{€…‰€€€~ƒƒ€€€ˆ„z{z}…‰†…ƒ€‚ˆƒ…ƒ…ˆ‰ƒ€|x€‚……€{~€tmpjWNuGb/horde-5.1.5/themes/default/sounds/reminder.wav0000644000175000017500000005515712233761325023143 0ustar mathieumathieuRIFFgZWAVEfmt ++LISTRINFOICMTFMaz & Kilgore 208 W. 30th #701 New York, NY 10001 mazrob@panix.comdataéY€€€€€€€€€€€€€€€€‚‡…{vyƒ‰†}vx‰ˆww~‡‰‚zwz}xy‚’‰{ppz„‡„€†‰„yop{‰‘zz~‚zsx‡””„qjr‚Œ‰€{ˆŒ‚sjp‘–xz}|tnt„–›{ljs„…†ugfu‡’‘ˆ|~}vnp}Ž˜”…unqz€„Œ‹}oip~ŠŽŠ…xppy‡’’ˆ|ttx{|~…Š~rms~†‰‰‡†ƒ}uos}ˆŽŒ†zxwwy€ˆŽ„{utx}…ˆ‰ˆ‚zssz‚‡‰‡…‚~zutyЉ‚{yyzz|€‡ŒŒ…{ttzƒ„„…†…wrt~ˆ‹ˆ|}~{wx€‹Žˆ}tt{‚„€}…‰†{rr{…‰‰ƒ}|€}xx}…„xsw}€~‡ŒŠ€uot‰Š„~~„ysv†ztw€…‚|zˆŒŠxmx}„†w}€‡pt…|rz~ƒ‰|r~†ˆ‚nq~‚‹‹wv‡Šwm{ƒ‰pv‚Œ†ru‚…‹‰to}‚‰~pz‚…‹€owƒ†‰so}ƒŠŒzq}„‡‹}nwƒˆŽ†qs‚‰‰wr€†‰Œzmx‡‡rv‚ƒˆƒpr‚‡yny€‚Šsˆ‡Šmp„ŒŒ{u€ƒ‚†{mx„•„mo~ƒˆƒpvއqp€ƒ€ˆ‡}€x€uu‡’zmy~‚…xt‡’‹„viy…€‚…‚…ˆ}x~wt„Š“‰usz|‚t}‡~oo€‚|‚…†‡tsyw|…‚‰’x{vxzx‹”Œ…ujy„{|‚„Ž“qtsx„€‚}wpy~xƒ†sq|u}‚Œšrlsx„‡z€Š‡okx{ˆˆ|pz€tv…–šmor~ˆ|v‡’Œydn|}ˆŽ†„‡|yslxŽŸ‘rlqzІsvŠ’•Škar|†ˆˆ†{€{lp|‡›‚not€‰zn~‘›˜}`fxŒŠ}Œˆƒ€meuž’vnt~Š„mn…•ž‘n^l}‹‘€v…‹†…zfk}ˆ˜™‚qsw‡xjyž`cv„ŽˆuyŽ‘‚h`sƒŽ™xty€Š€jk’Ÿ—u`j|Œ‘|n‹yej|‰“‘€vz}€…wju‰šž†fbv†Žˆqr‰–”…i]s†”‰wyƒ†lk}‹›™|hl}‹Ž|jyŽ“}ekЉ{w‚„‚ƒwnw‡•ˆnjx…އqm…””Šm`uˆ‚t|‰„ƒ€oo…“€ot}…~kw‰jo„‡ˆ„tv‡Š‚xs~……‹ƒtu}„‰†vpŠŽŠrgyŠ‹‡~p|Š„~tw„„ƒˆ€y}|€Šsz‚ƒ‰„rw†……svˆŠ~{|‡†~}{xƒ„‡}z€‚†ys€Š‡†s|…€~}|‚Šz~€„|z†‡}u„|‡ƒ‚xy„‚z~…‡xtw{……xЇ†st€~†…‚‡ƒxz}x{€ƒŽ}uy|‚†ys„ŠŠwfvƒƒ……~ˆ|}uu€„Š“†vstz†r{Ž„ji{ƒ…‡}Œxqlx‚‰“Ž{w{{ƒtq„‘–‘t^n‚†ˆy‚‹vhm‚‰Ž’…ywuy‚zl|’˜˜‡hdwƒˆ…x|“—ˆwgdv…Œ“Œ|€ƒz|{no„”œ•t_n……|w†—•„o^m…ˆŒ†zvzpk”™šŠlfu…~q~šžwa_w„‰†€ŒŠyvrip†”›—xfr{€wvŠœ™‡k^oƒ„‡‰„‰~rqho…”˜Œtnuy|vq„œŸxabw‚„‡‚‰™zqlhv‡Œ•’wwuvxuyŽ›—ˆofs}~€ƒ†’–pjhv†ŠŒ’Ž‚|voqrw‰››|jixyz‚ž”ynjiz…ƒŠŒ†}plrw•‰zrwwsyˆš˜nin{ˆƒ€’އufitŒ“‹‚tsvoq|†—Ÿxolp~v‚“—’hfq{‡Œˆ‡‹‡~zoju€Žœ“zpqu‚ƒxxŠ–˜p_iz‡ˆƒ‰Š‚|renŠ˜›†xutytn”™dduŒ…z‚Ž‘ˆzfdw…’˜ˆvwz|ƒ}os‰˜›Œk`p€‹Š|xˆ‘Žj_q†˜zy~|~zklƒ•ž˜zdjzˆ{p‚‘–v_e|Š’|w„ƒ‚uku‹š—„khw…Ž„qtˆ–“€e`y‹‘r|ˆ„uir‡’˜uir‚ˆsmƒ‘•“r]mƒ‚ry‰Š†}pm{”Ž{nq}ˆŒ~mu‰–‘~dgƒŽŽ‰yq€Ž†|qjz‰…tp|…‹…pq…“‹pbu‹‰zn~ŽŒ„yrt„ŒŠ†vs|ˆ‰|ny‰Ž|grŠŽ‹„rr…Œ„{pu…Šˆ…~tz‹‚sz„ˆ‰„qkŒŒ…sq‚Œˆyv‰†‚|sy‚„‰w}„‡yp|Œˆ†‚ox„zu€‡~yy‚~‰‚}‚€}‚sw„ˆ‹…utƒ{~ˆˆ‚}ww}{‚‹…‚~v|‚|z‚‡†ƒuy{x|}~‹ƒ|zv}‚y~Šˆ‰ˆxr~|v€€„ŽŠ~xyw}‚€ˆ‹„}x{{tv†ŽŽ‹ymv‚€†‘ˆ|vqryƒ‡Š€€{w}zt„qo}|y~{„’…xnn~……Œ†ƒ{{thv‹‘”Œtlv€„€z{‹•€oiq{†‹‰…„†}yxps„‘”‘nt~}xvx‡›—‡sdmˆ‰‡ƒ‹‡wkc|’”—‡rqzzs}’š{hhv~†‰‚ŒwnjyŒ’“‹ys|{ro{Žœ—„lcs„ˆ‡}Œ“ˆ|pdj’‚xz}~zrs„•™Œvjp{~€€|‡”Žqio€ŽŒ…|}}vmo“š“€jjz‚‚€{“”…xkft„‹‹‰„‚{xtp{‰’“†vqy}yzz~—‹xmmw…‰…„„„…wonw‡‘‘‹~ru~}{|~Š•Žunp|‚ƒˆŠŠ€ursy„Љˆ„~}}vux|†’vsw€ƒ~„Š€spty~}„‚ƒ‚{„ƒ‰†zstu{‚Œ““ˆtjls}„€’Žˆ{nouz†~{‚†Š‰„€~ƒ}oen|‰‹ˆŽ‘ˆ|o`dv‡‹‹‹ˆ}pdl{…†}v€Ž””…nr‚‚{sjp„‘•“‡}|ukiu‚™Ž}€‰‰ƒrchzˆ‹…zz‹˜”‚qlr{€wr|š˜‡rmv€zji„š‘€v|…ƒxhbs‡’“‰‚Šˆ†zecwŠŽŠ{w…“—ˆn]f|ŠŠ|y„”~np€‰…yigy¡‰vr|vih|•¡™‚ki}‰ˆ‚vs}„ƒ€yw‰››‹pZ]n‚Œ€†–•ˆs_g’†sky‹“‘ƒwuw{zpmzŸœˆqn{‰‚phs‚ƒ€†”Ÿ˜€fTYqŠ™™Ž‡ˆ„{peg‚š˜Šrco…“•ƒ€wmgewŽ›Ÿ•~rty||tp}‹{‡†{mjv‡‘…xu{‚‡Š„€~ypij|˜¦ wiglrw€ŽššŠ{mgq}…ŒŠ~|xy|†‘“Š}lirxƒƒ‹”‘‡{qmsz{‚‰‹Œ‰„~vonwƒ‹‰~ywyzŽ’ˆ~vnprwƒ’˜–Œylilt~Š•š‘woioyƒ’”‹‚xrsyz‹‘…tnrw{€ƒ‡‘‡|rkpz€‰ˆ„~{til|—–ˆvvywzx|‹–’ƒvlku‹’Š…ztqko“œ™‡qntwvuy‡˜›ziitˆˆ„€……ƒ„thp€‘—‘}pvvvyy†˜‘|jgnv{ƒˆ‘–ob_rŒ˜˜‹wpy…wrw—€b]p‚’‰‚„‡~ythn}ˆ‘’‹€‚|rho”Š|w‚‡~uouŒœ“|iah‚–š—ˆ|zysmff¥´§^cpvy†“‰{ztq‘Š|twzvt{‡—˜Ž…sak‚Œƒsl ¢Œvoqu{}~~|„˜’tak€Œ‡vvuw€„‰—Žr^_p{|…–£ ‹redesš•ƒnn„‘…{|‚‰…zqhj}” ™†yxypo|€~€‰’‚}rglŒˆ€†–‡njty„ŽŠ{omzŽ“ŒŒ‰€sklpr{Ž ¤—|fittt€‘†uqŒ‰……ƒ|tqstr~”žšŒzomlv†ˆ}x|‰˜“|v€„|mguƒ…‡”‘ƒtsxtt‡{w}“‘qikv}|y‚š§šzbfv~~‚„|z‚}†ˆ|mfmz‡‘•Š…}vngn…”Œ|r{Ž”Š}yywuw}yrz‘£…lky€|rq}Œ”‘„z}…thl~‰ŒŒ‹‰†‚|~zmn}ˆwo|–¡•‚qipx{ytyŒŸ¡uflw€‚~yŠŽzo|‹Ž{hhy‡‡…††ŒŽ‡~ncl‹ˆ€~ˆ–’ƒtiiyˆŒ‰yn|‘–†rqƒ‡{rhl~Ž™•†|€ƒ{qgj€“ˆ€}€€|tku‹‘ƒuv†”‚|us~„€ymn‚šœŽ€rxwqnq‘žœŒqcp|}}}†‘Œ~xwuz‰‘Žooxysw„—£•pgivƒ†‡‚{…ˆwnsƒ‹‡{vtŒ†ut„‰|zy}{y†‰Šˆ~tfiw„‰‹’™‘ygfmyŒ—“‰tku~}|‡’“ˆynhhr‡›¢—~onpsyƒ’Œ~|tsyˆ‡‚~zzwŒŽ†uwƒ‡ƒ{pp~†‡…‡‹†xnnu€ˆŽ”’ƒlbgv‰–ž•mirwy€‘›”„tgbiw¥¤riqvx~‰‘’†xqqsy‡ŽŒƒ~€zuwŒ„wsvz„”Štfp…Œ„{~‹‹~rln~Ž˜›Šm_gx†•–€pfci{¢¢‹rnutpu†œžŠqdhu‡—“zkpz{ut‘˜€pen„””‚nl}‹Šƒ‚ˆŠ~olsx•‘jqƒ…€~…‹yfcm…¡ªe_n{zz€–ngftŒš€fez‰Š…‰”’mdcl€’˜‘ƒ|„zot€‹‰|ppz‹œŸu]b|Š~t|›‘{moq~‘”ˆndpƒ…tgcgu‹™˜Œ{v€…zov‹”ƒojtƒ‘œŒr_i{€xu‘™’qmu‚ˆ{ih}’Ž‘{hbiryˆ–˜Ž|yƒ‚wov…‹~qr|‹›Ÿ‘}mep}zuy‰™—Š~wtv|‚zmpŠ™“‹‰Š‚pdhr}„‰ŒŠˆ„}yz~‚}plyŠ”œ›Œyhbozwu–Ÿ“€yxuwz}||yx‡ŽŒŒ‹skntxy}…Ž“Œ†wlmwztq|–¡™‘…ukhmw€ˆ…z|ƒ…‚{roru{‰’•™˜ˆr_^p|}ˆ’—‘‡~qgm|†…{u~–ƒzz€‚{tont€Ž’ŽŒŒ}lddjw‰—›”ކra^o‡‘‰{v|‰‘‰‚~zxmcg€œ§Ÿrpplmhp‹Ÿ¡’€|€|pikt‚‹‹‹‡‚…‰†vqw€tjpƒ™§ Šqajuqkm†§¯¢†pebo|ƒ†€|‚ˆ†}y€–‰vhbkz‚‰‘›žŠn^aq€{‹‘–”‡wgaq…‡w}“œ‘~qs}‰Špeh|ŒŽ–š“€iZZatŽ¡¨œŠ~{qaaqŒœ’}pu~ˆ‡€xyzleo€—¤Ÿqhnwxvt}’“ƒ|~xlkv…ŠŒ‹†~z‚|}‚}rlo|Œš£š„m`dmouˆ¨ ‰sjhgs†Ž€vy€‚‡ˆzqifm~Ž–š“Šsiit~ƒ“‹ƒ€{ojt€„ƒˆŒ‡~yz{{„{rpx…‘—–}nfjtt{ŽŸ¡‘{limq~ˆ|x}|}†Ž†vmkny†‘ˆ€tgky†‡€…‹‰†„~tnt‚‡~w~Ž’‰ts{„ˆyqr|‰Š„†ˆ„uhhp}Œ˜š{uz{slu‡•‘€tt|†‹‰ƒ{v{€}uq|Ž›“ƒulp}ƒƒ~x|Š”ymv„‡€xwzˆŠ‡v|ˆ‰tr|†‰~uz„’‡ymm|Ї|vŽ”ˆunov…‹‡vx†Œ|qy†‹‚tqs€Žˆy~†‚vns‚†||}„„}vpw‡“Ž}quˆ‘Šxqt{……~xv€”‹ynq|„„€€…Œ†|qp{‡‹uu‹ˆ~x†‰…zrqv…‹€wz†Š„wps|‰Œ„{xŽ‚sltˆ…‚‚‚„}|{…†}pp}ŠŽ‰……‚€{lhqƒ˜œ€usy|zz|‚ˆ‰ƒzwx•ylow}~‚ŠŒŽŠ~tqt{€‚„‡‡„€}zxsu~†‘”ˆ{qv…z}€~xv~ˆ“Žpghr~‹—š’‡zlgmw…Š…{}{z~‹—€odgt—“‹‚|wqnrzƒŽ‡~|„†…wqrx|ƒ–urv|€‚|xz~‚…‡Šƒp`[i†›¢Ž~rmlio‘—‚vqu€Š““†volkoy ¡”~mhoxyz†‰wyƒ‹„sjku…‘—‘ƒxy€vqw„‰ƒytw‡–—Ž„wiehq~Ÿ§ž…l__l}ˆŠƒ‡€vr}‘ž”vbZe{‹•˜•Œƒ{qidl””‹…}~……ƒ}sow}zy’œ–‚sps{€}{x{…‡ˆ†ƒŠ“ˆmZ[m‡œ¤œŒ{ssmfk|‘™€zvyƒ‹„rklms|Ž¡¥“ylkpuw|ƒ…‹’Œ€xw‰ƒtlmu‚—’ˆ}x}}xrq~І|z€ˆŒ‡…{kfku€ŒšŸ—„rjiox€†ˆ„€„…€|~‰“‹xgdn|ˆ•”‰|wusoq|ˆŒ‰ˆ†ƒ€€}qnsy€‡•„yv{zxvx‚|†‰‰…„…€sikv‚Ž”“‚ursvwz€…„‚…ˆ…€‚‡…viiu€‰Œ†|z|{usxƒˆƒ‚„††„ƒzspv~€…Œ†xtx}~{y{~…Œ‹„~}ƒ‡{lkvƒ“‹„~{ƒ~tqu€ˆƒ€…‡‹Šƒ}wqpyƒƒƒ…‡Œˆzrw†ƒ{vx{…Ž„||‚„zjhu„’–Œzy‡‚vos€‹†|{ˆ‹…|xvw†‚~~ˆŠ€xz„‚vprz‰™–‡zt{‚|qmxŠ—“upt‚Ž…ws{‚~wy”Œ€skoz…‡ƒƒ†‹~rr}‡‡}wwz‚ŽŽ‚vs}Љ}rtŒ~tt{Š•nhsƒ‚…ŠŽƒuljsƒ‘“Š~vz|vt{Š˜”‚rjkw‰‘Œ„ƒ}rjo”˜‹vs|‡‹‚xt~‰…|vy‡„~|}€…‰†}vqyƒ…ƒ‚‡Œ…vkkt‚•œ‘rqxzxx€˜|kgkzŒ™˜‹|vvtqr}Œ•‘„yspu~†ˆ‡„„‚ystŠŒ†}{||€ƒ~ww}ˆ‰y€…‚unu~‡‘”Œ}qoty~„ŒŠ€uoryƒ’Ž„xpnns}‘ ‹ukmpw‚ˆˆˆ‰…}uor€‘‰~ywx|‚…………„ysv|~}|‰Œƒ{vtvy{…Ž“‹|nkwƒŠ‹†~y{{y{~…”‹whfoyƒŽ——ƒwohkw†ŽŒ†~‚yy~…‰ˆ€ups}Œ’Š{ƒ}vpov…ŽŒ…~„~rlq€Š‹‰†ƒ€}{yx}ƒˆ†}uqx‰‘Œ…‚}xqlnx‰¢“}qsyyvvyЉyv{ˆ‹ƒzuz|~„ŠŽ‹ƒyqorz}{€‹˜™‹{qpt{~||~ƒŽ†xqy†Œ…xqszƒ†††ƒ„Šˆ{lhq~…‡‹Œ‰…}tppu€ƒ€~‚Љ}vxƒ{wtwƒ‡€„ƒylhmy‹––…|{{vpqz†Š‡‚€‚ƒƒƒ‚|uvxvx‚–”ˆ}urtwyz~ƒŠ‘†|z‚~tprx‰Žˆ|~zwy}€€‚†ˆ‡†ƒ€xpmqw€Œ•˜’„xrrtw}‚‚‚€…ƒ…‰Šƒvmkpx„—–‹|spot{€†ˆˆ‡†ƒ}}‚…ƒzqnow„Ž”‘‰€{zvrtz‚†„‚„„††ƒ}toqw|ƒ••}pmq{‚„‚~|~„†‡Œ€mber„–™Œ}urpnr}Š“ƒzv{„ŠŠ†|ursst€›œynmrz€‚…Œƒxx‡†ylit…”˜‘†zux|xtxŠŠvv~‹””Šxjjpux‚‘ ucal}‹‹ƒ‚‚~uu€‘–ˆp`bq…•›“‡~~shjxˆ“‘…zy~…ˆ…yqt{‚€}‹•‘}lks~‰Š‚xv|‡Šƒ~‚‹ƒoa`qŠ¢—‚rnturtš“pkq~•usvtqxˆš ’}mhnyƒƒ‚†Œsp{ˆ‹‚uqv€Ž”Ž€rs~ƒxw~ˆŠ‚xw|‡‘“‰xljrz„Œ—˜‰ufdm~Ž”†}~xrs•Œzkip•‘†~|}xpmu†’ˆyx}‚ƒ~yz…ƒ~~…ˆ„{tuz‚†…ƒ}y{‚†……‡€sjny‡”™€spquy{„“wqryŠŠ†~yzzx{…‡|tuxy}„†‰Š„}vty„~ƒ†‡‡ƒyuuz‚„€~ƒ‡ƒ|z}‚……„|xvw|†‰}rmr|‚‡‰‰‡…€}xtt}ŠŒƒyx}„……‚€~{{zxz‡‰‡ƒ€€|xwy}†‡…‚ƒ†‚xomy†‹ˆ„€€€}{~ƒ„~vs{‡Ž‡~xvuxz|€ˆŽ„zy|~{{|~ƒƒ‚‚…†ƒynp}ˆ‰ƒ}}‡ˆƒ}wx~~yy€Š‘ˆ{sprx~„Šˆ}v{ƒ…zvw|‚„…†‡ˆ†xmkv„‡~…„~wtz€‚~wz‡’“‹uppt|ƒ…‡ˆ‰‚zx}„‡‚wrv~„‡‡‰ˆˆ…zlfo~ˆ‹†‚‚ƒ€zvwz€}zŠ“‘…wposz‚…‡‰‰…~{~€‚€yrqw‚‹Žˆƒzmejw‡““Š‚}|||~~{xz‚Œ“‘‡zolptyŠŽŒ…~zz{|zvx|†‰ŒŒˆƒ}tnpv~ˆŒ‰ƒ€‚ƒ€€€|wtsx€‡‘—•Š|negnyˆ’•‘ˆ~xvw{ƒ}{z{{Œ“’‰{pllq{„ŠŽˆxuvyzyx}…‰Š‹‰…wstsu~ˆ‰ƒ„†‚|vrrv|†‘›šŒveciq~‰‘Š„{rpx„‰„|vw{ˆŠŠ‹‡xofjy‰“’Œ‡†ƒ~wqoqy„Šˆ‚‰Ž‹}pms|ƒ„~€…‰‰ƒ||‚…}rjm{‰”—“‰xtpfhxššŽxy}~|yy}‚…xuŽ˜’‚snotxz|ƒ—™zmnw{{wx‚’Ž…{vw}‚}ut}ˆ‡}y€‰ˆ|okq{ƒ‚€†—“mdit…†…ˆ‹Ž‰{pp{†‡€ut|…Šˆƒ€‚†‡pgjz‹“އ†‰‡ujgp€‘’‰„‡‚wpu~††xx~‡„{z}~wnp{‰““Œ‚zw|~xrr~‹“Žz}ƒ„€xsv|†‰„|y€ŠŽ†|wxzzzxz‹–•‰zqquwvzƒŒ’Žƒxuv|…‡yw}ƒ‚~~…Œ‡}pjmz‡‹‰†…‡†~tsw}€€‚…‰‡€xx{}{y}ƒˆˆƒ~{}€†‡wtx~‚‚„‰Š‚xpmr{‡Ž‡||{x{‚‡‡‚{vw{‚‰ŽŒ†yrorz…ŽŠ‚|yx|‚€€€€}{ˆ‹‡€xtv{„‡‡„€}{z|…„{xz~‚‡Šˆ„€{urt{†…zuw|€„††„€{wvw~Š‘…yppw}‚‰‹Š…~wst}ˆ‰zxz{}‚†ˆˆƒ{tqr}Š‹€xw|€€€ƒ…ƒ~yuxƒŒ‹„{uw|‚††…|xvv}ˆ‚vsw~‚…‡ˆ…{tor}”‚uptz…‡‰Š†vnnz‰’„ywxz{…‰ˆƒ}xtv~ˆŠ€{|}~}|~‚†„yuz…ŒŠ€tsy††…„„}zvu{‡ŽŒ‚vrv}„ˆ‰‰…~upov‚Ž•’†zutuw~„ŠŒ‡xpr|‰‹€xwz}~‚‰‹‡‚{tsx€……€‚„‚}yyz{„‰‹ˆxw{~€‚ƒ‚~yvx~†ˆ{pmr{ƒ‰ŽŒƒ{snoy…ŠŒˆ{yy{€…ˆ…~ywwz„Š‹ˆ…‚|vsvz€……„„„„„€zvuy~„ˆ‡††‚|wy|~ƒ‚}zzƒ†ŠŒ‡}rkmv‚ŒŽ‹…zups|…Œ‹ƒzy{~‚ƒƒ}}|yyˆŠ„€}zywtu}†‹Œ‰ƒ}yspv‚ŒŠ‚|z|„z|‚xsy…“Œ€wrruy}‚‹’’‰|rqu{€€~…††‚yx‡‡trx††‚ˆŒ‰~rns|‚‚~Š„vmnv‚ˆ‡ƒƒˆˆwsy‚ˆ‰vrv~†Šˆ…‡‰„xkeo€•Ž„~‚‚zrqz…‰…{y~†‹ˆwuy€„€z{ƒŠ‹…}{~‚zqpx…“Œ}~|vony‡’“Š}tu~‡‡€yz~|vu~Œ–’…wnov~‚ŠŠvswƒ‚}wy€ˆŒ†~|€ƒwrt~Šˆ€{}‚‰ˆvsw|}|}„‘‚ulnx„ˆ†……†ƒ|vv}†‰…|tty‚Š‹‰„ƒ‚|snq|‰Ž‡~z|ƒzy}€}|†ŒŠƒ{utx„…„ƒ„„zy~„„{vvz‚‰Šˆ…‚~ysrv‰Ž‹„~zy}‚ƒ€}|}|yz‡ŒŠ„~xuv{ƒ†‡†‚}zz~ƒ„€{yz}€„‡‡…‚~ztrx‰Œˆ„|z{‚}zx{†Šˆƒ|yxx|‚‡‰‡ƒ|wx~‚‚~|~€€ƒƒ‚|ww|‚‡†‚~€‚~{yx|‚‰‹…~{{zyy~„Š‹ˆ€wsw…†‚~€}z{‡ˆ…xux…†ƒ‚……‚|wx|ƒƒ~ƒ…ƒ|wz€„„€~ƒ„|wx~„ˆ†}wy€ƒ‚‚…„yst}‡ŒŠƒ}|yw{‚ˆ‰†xw{ƒ~€…‡‚zvz†‰…{{}~}xy‚Šˆ€xvy|~~†‰ˆxvz„‚~~~}{…ˆ†xw{€€„ˆ‰…~vru|ƒ†ƒ…ˆ†wsw~ƒ……‚€|~„ˆ†wsw{†‰ˆ†„xrpw‚‹ŽŠ„€~{xxz~ƒ……‚{x|ƒ‡†ƒ~~}zyxz…‰Š‡}}|{yvz‚†‡‡…ƒ€|xwwy€‡Š‡‚|}€‚‚€|xvv|‡‘Œwsqqu~ˆ’Œ„{ttx}‚ƒ‚~z{†Šˆ‚{usw~‚„…‡Š‰‚zuv{~~}}€…Š‹ˆztvzyz€‡Œ‹…~yz„…‚|xw{{|‚Š‘’‰ylhnx„Œ‰†‚xpox„Šˆxw|„ŠŠ‡‚|xrnt‚’†~{{|{yxy…†‚~ƒ‹‹„xmmuˆŠ‡ƒ„…„~wu{ƒ†vqu€Œ“‘ˆ~xusonx‰–˜usx}€}~€‚zy“€ohnx‡ˆˆ‹Šrls~…„}xzƒŒŠ{yyxtrw„’•wx~{vw|ƒ€€†’‰yjen|ˆŒ‰ˆˆ„{row„ІzrtŠŽ‡€|ytomu„“˜‘…yuy}}{x{…„€}Љ}ojpzƒ‡‡‡‰Š‰wqt}‚€zvz„‘Œƒywvutu{‡’“Œ€wv{€€~yx{‚‡‡zmgmy„‹Œ‹‰ƒzrpv†„~y{‡Š‰…~|zwsrwƒ‘އ€|||zwvy~ƒ††††ˆ‡wppw†‰ˆ†„„‚{y|€~zww}†Ž‘އ}vqnqw€Š’‘Š‚zwwy|~€€€‚…‰ˆ‚{vsty~ƒ‡‹ŒŠ…zvvwy{~‚‡ŠŠ†‚~yvwx}„†…ƒ€‚€~{xwwz€ˆ„yqoqw~…Їzxy|€}|~€‚ƒ…††‚|wsuz€„†‡‰‰‡ƒ{truz~€ƒ‡‹‹‡€wst{„„ƒ‚‚€~‚…†yrqvˆŒ‹‡‚zpmq{†Œ‡~}}{{~‚ƒ|y{‚ˆŠ…{z||{yz€†‹Š…‚|xusx‹ŽŠ„|zyxy~…Љxvz‚ˆ‰…~zyxvu{…“„vmnv~‚„‡‰ˆ„~xvz†„~zz~‚ƒ‚ƒƒ€ywy}ƒ„‚~‚ˆŠƒzuvz|~€„‡‰‰‚xpr{…‰‰…€}{|{}ƒˆ‹‡~unp{†Œ‹‰‡ƒ{spt|††}xz}€€€‚‚}y{†ˆ…zx{€‚~€ƒƒ€‚‚€~zww}…Љ„€|zxwz‰Šƒzuu{ƒˆ‡ƒ{vtz‚ŠŠ„{srx„†‡‡„~xvy€†…ƒ€}||~€‚„|wy…†ƒ€}|~ƒƒ€}~€~{{€†Š†~yvwz„ˆˆ†ƒ~xtw€ˆŠ„~{yz}„…†„}urxƒŒŒ…|{{{{~ƒ††zx}„‡ƒ}z{}€‚„†…yvz‚ˆ‡€{|‚~‚|vv~‰Šzx{~|}…‡ƒ}xy€‡ˆ{y|ƒ†ˆ…}vtxˆ†~{}‚†ƒ|z}ƒzvxЇ~yy}€}z|‚‡‰„|xz€†„}xy~ƒƒ}‚‡‰†|ttz‚†ƒ~}…‡ƒyuy„ƒ}z}„‰‰zx{€‚~x{…‡ƒ}|„†yux„…ƒ‡‡‚xru}…ˆ…€‚„„wv}ƒ…‚|y}ƒ‡‡ƒ~€€~xtx‰Œ‡€}|ywy€ˆŠ‡€{}‚ƒ€{x|ƒ~{~„ˆˆ‚zwz~~}{}„ŠŠ…{z{||{{‡‹ˆ‚{y|~}||~‚„‚||‡ˆ„}xxy{|„‰Œ‰‚zrpv„†……†„yy}„‚€|yz~ƒ……„„‚zuw{€…†…„‚€€{xx|€‚‚ƒ‡ˆ…zyxz}‚„ƒ~€€‚††zvuw}„ŒŠ„}wrqv‰Œ‹†}yx{…„‚~{yy}„ŠŠ†}zwvyƒ‡ˆ…}}~~{z|‚‚ƒ…†ƒ~zwx{ƒ†„|}~€‚„…{uswŠŽ‡}wssuyŠŽ‹„{uw|†‡ƒ|zxy|„Œ‡~vsw}€ƒ„…†…}yx}‚‚{z~„‰ˆ„zz|}|}€…‡ƒ}xy€‡‰…€{yy{}†‹Žˆ}qmq|‡‹‰†‚€}zxy‡Œˆ~urw‰‰†„€}zwwz€ˆŒˆ€zx|‚}~€‚~}€…ˆ„|vu{ƒˆ…~|}€~‚„…€xsw€‰Ž‰|yxxy|‚‰‹ˆ€xtx€†ˆ„€}{yy}ƒ‰‹†|tsy‡†‚ƒ‚zx{€……‚}y{€„…‚~~}}~ƒƒ}yz~„†„}~~~‚…‡‚|wvy€†ˆ…€}}||}ƒ‡‡‚}xw{……ƒ~{z{€†ˆ…|zz}€‚ƒ‚‚‚€}z|ƒ„‚~|}‚€||ƒ„‚~|‚‚€~}}~~~~…†ƒ|ww{€……ƒ‚€~}z{€…†{wyƒ…„ƒ‚|xw|ƒˆˆ„~z}€~||…„}|ƒ…{x{€ƒ~|~ƒ†…‚~}~zwy‰Œ‡zy|}||~„‰Š„|wx€‡†‚|y|~~|}‚ˆŒŠ€vqu~ƒ„‚„ˆ‡€xvz€„ƒ~{|‚ˆˆ{y}‚‚~yy~„†ƒ~}‡‰ƒyrszƒ†…„†‡…~tor|ˆ‰‚{|€‚|~‚†ƒ{spv‚Š‚|{{yuu{††}y{~€{wz‡…€~……zvx}ƒ„{{ˆ‹‡€|||zvty„ޓނvpry~~€…ŠŠƒ{vx€‡‹†}usv|€ƒ‡ŒŠ€smpx‚‡ˆ†„„…‚|vx~‚}z|‡Šˆ{z|~~|z|€„…‚„‡‡ƒ{sor{…‹Œ‹‰…}snpyƒ‹‡|{~€‚‚ƒƒ€zspu€Š‘Šxsrtx}„ŠŒ‰‚}|{|~~|{|~‚ƒ„……„|xxz}€€‚„†ˆ†|yvttzƒ‹‰€wqpu|‚‡‰‡ƒ~{}€ƒ…„|vrsz„‹Šwqptz€‡‹‹ˆ‚~}|||}}||~‚„………„|wwz}€‚‚…ˆˆƒ~zxwww{ƒ‹Ž‡~vrsx~„†‡…|{€„…ƒ~ytty€…ˆ‹ŒŠƒxoou}„‡ˆ‡…„‚{xx}€|{~„‰‰…}zz|{yy~…‰‡ƒ‚‚‚|vtu{‚ˆŠˆ…„‚~vqs|„‡†ƒ€„ƒ{{~|ww}†Žˆ|xwxyy|ƒŠ‰€{|~}zy{ƒ…„„†„|uuy‚‚…ˆˆ„}wvz~||ˆŒ‰‚|yy{||{}‚ˆŠ†€}~€}ywy~ƒ…„‚ƒ…‡ƒzttyƒƒƒ„††…€yvx|}€…ˆ†}|}~}zxz€‡Š‡‚}zxy}‚……‚€€‚„‚|xwz„‡ˆ…€yux|€…†‚~}zy{€†‰‡ƒ€~|xvy„…„€€‚ƒ€|yy}€€…‡†ƒ~ywy~‚€€ƒƒ€~‚‚€{xx{†‰‡„|xuw~…ˆ‡„||‚~~€|z}…‰‰„zxy{~€ƒ††ƒ~{}€|z{ƒ††ƒ€€~zwy€†‡ƒ}{|‚„ƒ}}}|z{‰Š‚yttx}„…‡‡„|vu{„ˆ…{z{~€‚‚ƒ……yst{…‰‡‚~~€€|z|€„‚|~…ˆ…~xwz~‚ƒ‚€ƒ‚}yy€ˆ‰ƒ{uv|ƒ†‡…ƒƒ€{uquŠzwy|~€€ƒ††yux‚ŠŠ„~yy{}}~†‰ˆ‚yuy€„ƒ~|~‚……‚}|~€{xz‚‰Š„|wx}ƒ„‚€€~{y~‡‰wrtyƒ†‡‡‡ƒ{sryƒ‰Š„~z{~€„…‚{ut{…Љƒ~}|}}{{}‚‡†‚}}ƒ}yxz€……„€}yz~ƒ‡„zz}…†ƒ€~}{wvz‚‹ŽŠ‚zvvz~€‚„††‚}yz~ƒ…ƒ{z{}€ƒ„…†„€{wx|€‚‚‚‚‚ƒ‚€}{|}}~~€ƒ††‚~|z{~€‚€€€€‚„„|yww{€†‰‰†‚}ywx|€ƒ„„‚€~}~€€~|{{}‚††„ƒ~{xz}‚ƒƒƒƒƒ‚€}zz{}~€„‡…‚|||~€}~€ƒƒ‚‚ƒ‚{wvy~ƒˆ‰†~}{yy{€……ƒ€~‚ƒ„€|z{|}|}‚ˆŠ‡‚|yz{~~~€„†…‚~~}zx{€…‡†~~€~{{~‚€~‚‡ˆ†xtvz„‰Š†~xvzƒ„||‚ƒ‚‚‚~xtu|„ŠŠ†~~~{xx|ƒ†„€~ƒ†„yvx}€€€„‡‡‚|x{‚}yz…‰‡ƒ€~zvtx€‰‹„|xz}~~€ƒ„{x|„‹‹…}vtw{~„ˆŒŠƒztu{„ƒ~‚„‚€~‚€|xw|ƒ‡‡„€~~€€~{z}€~‡‹‰xrrxƒ†††‡„~wuy‡ˆƒ}xw|…‡†…„wqqxƒ‹ŽŠ„~zxxy{ƒ‡†{z~„…ƒ{z{}~~‚†‡„{|~€}z{}‚†‡‡ƒ}zvuy€ˆŒŠ„~yxz~€ƒ„„‚~xvz‚Љ‚{vsuy…ŠŒ„{ttyƒ„ƒ‚~}~€ƒ„ƒzy{‚ƒ‚‚‚‚}||~~~†‰‡zwwy}€ƒ…‡‡ƒ}wv{‚‡ˆ„~{yy{~ƒ‡Š‰ƒzsqw†Š‰‡ƒzwvx…‰‡{z|€‚‚€|yz~„†„€~~{z{ƒ„ƒ‚~ywy…‰‡‚}z{}}~€„‡†yuv}…Љ„|{yxy|ƒ‹‡~wvz~‚‚‚ƒƒ{xy…‡„€}|~€}}ƒ†„€|z}}~‚††‚|yy}‚€ƒ„€{xz€†ˆ…€|{|}}}„ˆˆ‚{ww|„„ƒ€{yz†ˆ…€|z|~…†ƒ~yx|ƒ‚‚‚~{z|…„€~|~€€~~‚„„€|zz~‚‚‚‚€|zz}‚„ƒ€€€~|}ƒ„‚}}~€€‚€|zz|„…„‚€~|z{~……‚}}~€€€}|}‚……ƒ€}|{|}‚„…ƒ~}}~~~~€‚‚‚€~}}}~€‚‚€€€€~|{{}ƒ„„„‚|zy{‚……‚~~€€€€~}|}‚…‡…€|yy{|~‚„„ƒ}~~|z|ƒ„„ƒ‚€|xxz„†„€~€~~~~~}}~…‰‡‚|xxz}€‚„…„~|~‚€|xy~‚…„„ƒ‚}yvx}„‰†}}‚‚€~}~~}|{~„ŠŒ‡~wvx{~€‚„††ƒ~zz~ƒ„zy{ƒ„„ƒƒ„}wtw~†ˆ…€~€ƒƒ€|z{~~}‚ˆ‹‡xux|€ƒ…„€|{~ƒ…zuv|ƒ‡‡‡…ƒ}wrt|†‹‰ƒ~|~€€~|}€€}z|‚‰‹†ywy|}}~†ˆ‡|{~€{xx}ƒˆˆ…‚€~{ww{‚ˆ‡‚}|ƒ„‚|||}|{~ƒ‹Ž‰€xtuy}€‚„‡ˆ…€zx{ƒ}z{‚„ƒƒƒ„ƒzvv{‚…„‚‚„ƒ|yy{€€€‚†ˆ…ywy}€‚‚‚~ƒƒzvv{‚†ˆ‡†„|wtu{ƒ‡‡„€~}}}€~}~‚†‡ƒ|{||||}„†…ƒ€~|yxz€…‡†„€~}{zz~ƒ„‚}~„„‚€}|{zz{†Š‰…zxz{|~ƒ†…ƒ€||€}{{~‚ƒƒ‚‚ƒƒ~zxz~€€„‡…}yz{}~~…ˆ‡‚|xy}€€€‚~€ƒ…‚}xvy~ƒ††„„ƒ|xvy„…‚~€‚ƒ}}~~||€„‡…€|z|€}|ƒ„‚€€ƒ}xvy…ˆ‡ƒ€}{yz€……‚~{|…†„||||{|€…Љƒ|wxz‚‚€‚‚~|~‚„ƒ~zy{€„†„‚€€}zy|„„}|ƒ†…€|{|~}}ƒ†‡„~yxz„„‚~‚„ƒzwx|„ˆˆ…‚}zxx|…‡„{z}‚…„~}}}{|€„‡‡‚}xwzƒƒ‚‚€}}€‚|z{€…†„}|{{}ƒ„ƒ€}{}„„‚~{{{{ƒ†‡‡ƒ}wux~„††„~{z|‚„„~zy{€…‡‡„€{wvy~‚…‡†ƒ||~€€€€~}~€‚ƒƒ|{{}ƒƒƒ‚€}|~‚‚}|{|ƒ†‡†„~yuu{†ˆ‡ƒ|zz}€ƒ…„‚}xx|‚†ˆ†‚~zxxz}‚‡Š‡|zz|~€‚‚€€‚‚{yzƒ„‚€€}}}{|€†‰ˆƒ|xwx{~‚…‡‰…xuy„…ƒ€~~~~~‚†‰„|urw}„‡‡…„ƒ|xvx~…†ƒ}€ƒƒ€}{}~|~‚…„€}~€‚|xx}‚††…‚‚‚ztsy‚‰‹‡‚~|}~}|}……{x{‡ˆ„€|{{{yz~†‹Œ†~yxz|}}‚†‡…€{z~~{{~‚ƒ~}€„†„~xwz~€‚‡Šˆzuuz‚„‡†{xy}‚ƒ~}~€‚€‚…„~xuw}ƒ††…„„„€yttz‚††ƒ‚~{z|€ƒƒ|{ƒ„ƒ‚}zwx}ƒ‰Š†‚~|ywx|‚‡ˆ…~~€|{}€‚€~~€ƒ……‚~{{||||~ƒ‡‰†‚~{yzz{~‚†ˆ‡‚}{|}~~€€€~}‚†‡„~ywx{~€ƒ†ˆˆƒ}xvx|€‚ƒ‚€~~|{}€ƒ„ƒ€~{zz|‚ƒ…†„€zwwz~ƒ…†…ƒ{yz}‚~}~‚ƒ„ƒ‚zwv{€…ˆˆ…}zxy}„„‚~€‚ƒ‚~||}}}~‚…†„€|{}~~~}}ƒ„„‚‚€~{xx|‚‡‡…~~|||~ƒ‚|}…‡…€|zz{|}€„ˆ‰…ywz~€€€€€€‚‚zxzƒ……‚€€~|z{‚ƒ€~}€„…ƒ€|z{|~~‚…‡…€{y|}~‚‚ƒ‚~zwy~ƒ††ƒ~~|{|ƒƒ}|~‚…„‚~|{|}~~…‡…|z{}€€€€€‚‚€|yz}ƒ„ƒ€€~}|~‚}‚„ƒ|{|~ƒ„ƒ€}||€}}€‚‚‚‚|yz}€ƒ„„‚€~}||}‚‚~~‚‚~}}~~ƒƒ€~~~~~€‚€~|}~€‚‚€~~~~€}|}ƒƒ‚}{{}€ƒ„„‚}}}~€‚€~}~€‚‚~~~€‚~€€~}~€‚ƒ‚€~}~€‚„ƒ€|{|‚„ƒ€~~}||ƒ†…}z{~€‚‚€|z}„„~|}€€€‚~|}‚~|~€ƒƒ}|}€€~ƒ‚~{z}…†ƒ||}~~€„†„yxz„…ƒ€~||€„†„~zy{€ƒƒ€€{z~ƒ…ƒ|}€ƒƒ}|}€€~~„ƒ{z|…„|{}€€„…{ww|ƒ‡‡ƒ}}}}|}…†ƒ}yy~ƒ†…~}}}}|~‚†‡ƒ}yz}‚~‚€~~ƒ‚~zy|……‚~}~€~}ƒ}z{€…‡…€{zz|~„††{wx}‚…ƒ€~~~€„…ƒ~xvy„‡…‚€~}||~‚„ƒ|{‚„„€}||}}€‚……‚~z{~‚~~€‚ƒƒ|xx{…†„}}|}~€ƒƒ~{{ƒ†…‚~|{z{~…‡†‚}yy|‚€€~~€‚„„~zx{ƒ„„ƒ‚€~{{}}~€ƒƒ‚€~}|||~„…ƒ€}{|~€€€~‚„…ƒ{xx{€„……ƒ‚|zz}„ƒ~|}‚ƒƒ‚|zy|€…†…ƒ||}}}~€‚ƒ‚€~ƒ‚|{|~‚‚}|~€€~}~€ƒ„„‚~}{z{~ƒ‡‡ƒ|{|~€€€}|~ƒ†…}zz|~€‚ƒ„…ƒ{yz~€~~€€~}}€‚‚~€€~||~€‚„„}yy{‚„„‚€}{{~‚„ƒ€}}~€~{z{ƒ……‚€}||{|‚„„‚}~€~~€~~€‚‚~~}}~€ƒ…„‚}|||}„…„€}||~€€~~ƒƒ~}|}~‚ƒ„‚}{{}~€‚ƒ„ƒ~||}€‚‚€~}€‚ƒ}{|}ƒ„ƒ‚|z{}‚ƒƒƒ}||~€‚€}}~€‚‚€~{z|~ƒƒƒ‚|{{}„…ƒ€}}}~ƒƒ~{z|€„…„}||{|€„†…‚~{|~€‚€~}~‚~~€~~€‚ƒ~}~~}~…†ƒ{z|~€€‚„„}zz~‚„ƒ€}}~€ƒ…„€{wy}‚„„‚€~{z{ƒ„‚}~‚~}}€€~}~ƒ‚€}}~{{}ƒƒ€€€}yy}‚‡‡ƒ|}~~}‚„‚~{z~ƒ†…}{|}}}~‚†‡„zy|€ƒƒ€~}‚€|{}„„~€‚~||~€~‚……}zz}ƒ„„€|y{~‚ƒ~}~€€€‚}zy|…†ƒ~|{}€ƒƒ~~€‚‚€}||~€€„„‚~||~€€~}~€ƒ„‚€~|{|ƒ†…‚~~~}}~€€€‚„ƒ€|{{}~€‚„„ƒ€}{|~€€‚‚€~||}€ƒ„„‚€}||~€‚ƒ‚€~{{|~€‚ƒƒ}}~~~~€‚ƒƒ‚€~}{{|‚„„ƒ~~}}~€€€€‚ƒƒ‚}|||~€‚„„ƒ€~}}~~}}~ƒƒ‚€}|{|~ƒƒ‚€€~~}}~~~‚„…„}{z{}€‚ƒ„ƒ€~}}€~}}€‚ƒƒ‚€}{z{~ƒƒƒ‚€}||}~€ƒ„…‚|{|~€‚ƒ‚€~€€~{{}€ƒ…„„‚€}zyz~……ƒ~~€~}}‚…†ƒ|{{|}~€ƒ……‚}}~~|}ƒƒ‚‚}{z|‚ƒ‚€€€€~~}}|}‚†‡…|yy{}€‚ƒ„„}|~€~||}ƒ„„ƒ€|yy{‚„„ƒ€€}}~~~~‚„„ƒ€}{{}~€‚‚‚€€€~|{|ƒ……ƒ€|yy{~‚„„ƒ~~~€€}|}ƒ……ƒ€}{z{|‚„…ƒ€~~~~~~€‚ƒƒ‚€}{{}€‚‚‚€~€€}{|‚……ƒ~|{{|‚„„ƒ€}}~€€~~~}~‚„…ƒ{y{}€‚‚‚ƒ‚€~}}~€€}|}€ƒ„ƒ€~}||‚„ƒ~~€€~}~€‚„„}zz}‚‚€~}~€‚|{~„„‚€~|{|€ƒ…ƒ€~}~€€~~€€~~‚„„€|z{~€€‚‚€}|}€‚~|}€‚ƒ‚€~|}€ƒƒ~}~€~}}€€~€ƒ„‚}z{~ƒ‚€€}}‚ƒ€}{}€‚ƒ€€}|~„„~}~€€~~€‚€~}‚~|}€‚~~‚‚€~}€€~}}€ƒƒ‚}}€ƒƒ~|}€‚‚€~~€~ƒƒ€}|}€€€‚}|}€‚‚€€€~}~€‚‚€~~€€€€‚}|}€‚€€~}}~ƒƒ}~€}}~€€€€~~‚‚€~~~~€‚ƒ‚€~}}~€€}}~€‚‚€~~}~€‚‚}|}‚ƒ‚€}}}€‚‚€~~€€€€€€€€~}~€‚‚~||}ƒƒ‚€~}}~€‚‚}|}€‚‚‚€}{{}€‚„ƒ‚€~}}}~‚‚~~€€€€€€~}}~€‚ƒƒ~}}|}„„‚}|}€€~||~„„‚}||}€‚„„‚€|{|~€€€€~~€€~~€€€€€~}}~€€€‚ƒ‚€}{{}€‚‚‚‚€~}|~€‚ƒ}}~€‚‚}{{}€ƒ„ƒ€~~}}}‚‚~€€€€€€~}}~€‚ƒ‚€~~}}}ƒƒ‚~}~€€€€€~}~ƒ‚}|}~‚ƒƒ‚}|}~€€€€€€€~€€€€€€€~~~€€‚‚~}|}€‚‚€~}~€~~€€€€~}|}‚€€€~}~€€€€€~~€€€€€€€€}|~€‚‚€€€~}}~€‚‚~~€€€€€~~‚‚‚€~}~€€‚}}€€~~‚€€€~}~€‚~~‚€~€~ƒ‚€~|}€€€€~}‚‚}|~€‚‚€€€€€~}}‚ƒ‚€}}€€€€}~€‚ƒ€~|}€€€~}‚}}‚‚€~~€~~€ƒƒ~||‚€~~ƒƒ€|{|‚‚€€€~}}‚ƒ‚}|~€€€€~}~€‚ƒ~}}€€€€~‚||~‚‚~~€‚ƒ~||~‚‚€~~~~~€‚„„}{{~€‚‚€~}}‚‚€}}~€€€~}~‚‚€~~€€~€‚‚}|}‚‚€~~~‚€~||~€‚ƒƒ€~||}ƒƒ‚}}}€€~~€‚‚‚€~}}~€€€€~~~€‚‚€}}}~€‚‚€~~€€~}}ƒƒƒ}||}ƒƒ‚€~}}€€€~~€‚‚€~||}€€~~€‚‚~}}~€‚‚€~~€€~}~€‚‚‚}{|~€‚‚‚€~~~€€~~‚‚€~~}}~ƒƒ~€~~~€€}|}€€€€€~~~~~€‚ƒƒ~}}}~~€‚ƒ‚~€~~~€‚}|}~€€~~~~€‚‚‚€~~~~~~‚‚€~}}~€€}}}€€€€€~~~~~‚‚€~~~~~€‚‚€~}~€€€}}}€€‚‚€~}~~~~€‚ƒ‚€~~~~€€€€€~}|}~€‚‚‚}|}~€€€€€€~~~~€‚‚€€~}}~€€}||~€‚€~}~€€~~‚‚€~}}}~ƒ„ƒ~~~~~~€‚€€€}}~€€€‚‚€~}}~~~€‚ƒƒ€~}}~~~~ƒƒ~}~€€€€€‚ƒ‚|{|€‚‚‚~|{}€~€€~}}‚‚€€€}}~‚€}{|~ƒ‚€€€€~~‚€~}}€‚ƒ‚€€~~}|~€ƒ„ƒ€~}~~~~€‚€~~€~~~€€€‚‚}}~€‚ƒ‚€~}}~€‚‚~}}€€‚}||~€‚‚€~}|}‚€€€€~€€~~~€€€€€€~}~€‚€~}}‚‚€€€€€~~‚€~~~~€‚‚~~~~€€€€€€€€€€€€~~~€‚‚€~~}~~€~~€€€€€~~€€€~~~€€€~~~€€€€~~€€€€€€€€~~~€€€}}}‚€€~~~€€~€€€€~~~€€€€€€€€~~€€€€€€~~‚‚~~~~‚‚~}~€€€€€~}}~€€€€~~~€€~€€~~€~~~€€€€€€}|}‚‚€~~~€€~~~€~~~~€‚‚€~}}€€€€€€€€€~}}€€€~~~€€€~€~~~~€‚‚‚€~}~€€€€€~}}~€‚‚~}}~€~~€€€€€~~~‚‚~~€€€€€€~}}€€€~~~€€~~€€~~}~ƒƒ}}~€€€~~~}~€€€€~}}~€€€€~~‚‚}~€€€€€€€€‚}|}€~}|~€‚‚€~€€€€€€~}~‚‚€~€€€€€~}~€€€€€€~~~€€~~€€~~~‚ƒ‚€~}~€€€~~~~€€€€€€~}~€€€€€~~€€€€~~€€€€€€€€€€~}~€€€€€~~€€€€€€~~€€€€~€€€€€~~~€€€€€€€€€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€€€€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~€€€€€€€€~~€€€€€€€~~€€€€€€€€€€€€€€~~€€€€€€€€~~€€€~~€€~€€€€€~~‚‚€€€€€€€€€€€€€~~~€€~~€€€€€€€~~~€€~}~€€€€€€€€~€€€€€€€€€€~~~€€€~}}~€€€€~€€€€€€€€€~~~€€€~~~~€€€€€€€€€~~~€‚‚‚€~~~~€€~€€€€€€€€~~~€€€€€~~~€€~~~€€€€€€€€}}~€€~}}~€€€€€€€~~€~~€€€€€~~~€€€€~~€€~€€€~~~~€‚ƒ‚~}~€€€~€€~~€€€€€~}~€€€€€€€€€~€‚€~~~€€€€€€€€~}~€€~}}~€€€€€€€€~~~~~~€€€€€€~~€€€€~~€€€€€€€€~~~€‚~}~~€€€€€€€~~~€€~~~€€€€€€€€€€~~€€€€€€€€€~€€€~~~€€€€€€€€~~~€€€~~~€€€€€€€~€€€€€€€€€€~~€€~~€€€€€€€€~~~€€€€€€~€€€€€€€€€€€~~€€€€€€€€€€€€€~~~€€€€€€€€€€€~~€€€~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~€€€€€€€€~€€€€€€€€€€€€€€€€~€€€€€€€~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~€€€€€€€€€€€€€€€€€€€€~€€€€€€€~~~€€€€€€€€€€€€€€€€€€€€€€€€€~~€€€€€€€€€€€€€€€€€€€€€€€€€~~€€€€€€€€€€€€€€€€€€€€€€€€€~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€€€€€€€€€€€€€€€€€€€€€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~€€€€€€€~€€€€€€€€€€~€€€€€€€€€€€€€€€€~€€€€€€€€€€~€€€~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~€€€€€€~€€€€€€€€€~€€€€€€€€€€€€€€€€€~~€€€€€€€€~~€€€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€tmpjWNuGb/horde-5.1.5/themes/default/sounds/doorbell.wav0000644000175000017500000001206012233761325023122 0ustar mathieumathieuRIFF(WAVEfmt ||dataèÒp,$LÌæÍ† +K¨ÿè˜ f¦øá}cN›ã¬mcM™ÍÐÓmIWo¼Ø»€G/c³Ì¤c-H®Õ¿s5b¢éÖ®_4a’Ìë¦eJcŠÑÕ³vLN}³Ó¤x?/X“Ó±N!fÇÆxZ=J¥Ã½›JH[‰áÖq@mŠªºeC>|ŸÀ±w_\v¦Æ·‹Yj{”¯¤xHXrŒ·vU=c’¹}CEW•²¨\F[‚­¼©smf†²··€Wjt¬¿­[P}¢Å¶nP@n¯­j.@f¡¼¬sOQlªÂ´Œ^X€–À½pTc„™¹k\a€£±°|ibvžª±aY_—µ«_XoŸÍ½‚aRa‹ª±ƒS?P|­ÁœcR`ºÏ³sSf{°Á´~JPp¡Æ±‚WNs¡Ãµ…]Mb‘·¬xIJ\¯³Ž_Qe‰À»ŸzTh„©Ç©tVY~­¾³†U`qº”^Qj“¼·‹gP_±ºaSZ…³¾§mJ\¨¿¢xTY¦¾¬{QToŸÅ·†TJfšÈ»ZOe“ÄÊ•]E_¹ÅŸY7S…³¹œd=Q±Å¤xT`{¨É¯€^TožÅ´€ZPg¼¼XEVº¾’]OcŽ·º fEc‹­¼™jE]ƒ©¿¤qPS~¦º¯XQj ¿°Œ^Rg˜¾´‹iWg±¹–iZg‹§²—m\c|ªžuVWv™®¤zXVs»³ƒ^Pn‘·µŒcReޱº•iZe‰ª±™oU^|¤´ xR[x º¦€\Uo“®¬†`Tm‹«®`Of‹­·–pXa‡«º¤s[c{¡° sU\s—®¡a^p˜±«‹a\p™¶§m[c‰®µ”tWe†©²—v[e… ´ vY[}­¤{[Vt˜·°Šb\m”¯®i^e‚«®“kV`ª¯œuX^€©¶©\`|²ª‚^Yp”®©…fam®­‘jYi‰¬µ’l[`¡²œx\`¤³¤€eh‚ ´ª‚^^w•¯¨†^Vq‘²®‘m[jˆ§´šq[b†§°žv[a{£´£a`v™µ¬†f[s’¬ª‡f\j‡¦¬’j[c†«µ™nV`‚§²œxXXz¢¹¤€^Xv™µªƒ\Wt“®©‰fZm«¬gZh†¦´šlWi…¦µœv]bzœ´©}XWxœ²§†eYn˜®©‹lYhŽ«¬jTb‡©¯“q[h„Ÿ² w\`{Ÿ³¤|\^w”­§…c\o¯«j]o®®nYfˆ£­˜qW^y¯x]_y›¯¢€bax™°¥†ehz–£œ‡mfy“¢žŠpcv‹rdm„›¥“tfo„™£•{kn|˜§›|jhx•¥˜„pgt¥ ˆrhw‹ ¡Žsfr‡›žvgp„›¥˜}hi~™¦œ‚njy‘¢Ÿ‡rjvޤ¡Štjv£¥xhp†œ¡‘wei~˜¥–zij|“¡˜khz“£œ…lftŽ¢Ÿˆoht‡œ whp†›¡’zhl‚˜ž’zhk€“¡›„khy¥ž†rmw‹ ž‡rgr‡ž Žxkp‡ž¤”{jo„™ž“}mk}”¡™‚kk}“£œ†on{Ž¡¡ŠrhsŠ¡¢‹tms†œ¡’{no‚˜¡’}oo|“”|mj~“›–‡rhv‹žsfv‹››wkt„™¡‘ynr€–£•€on|“ “|mkw‹›™†pkx œ‡rmx‹žžxhn„˜¡“|jo„• ˜qrƒ•£–ok{‘¡˜ƒnjyŽœˆunw‰œ¡’ymw‡œ¡’{ms„™£•ƒoo˜¥ž†sr~”¤›„tq{ž›‰wjvŠž‹vjtŠ›ž“|ko•£–~mo€• ˜or~‘™‚mku†˜™…khs‰ž›†wnr„™›{knƒ•›Ž{jk€’›”nm~›…pkyŠ™œ‡rku†–›‡unt„˜ž‘zmo„œ¤“}ok{’–„sk|’›™‡so{ŽžŠsn{‰™›sjr„˜›Ž{ms“›“~oo€• •rn{’¡™†vq{Œžž{q{‰˜›‹wnv…’™Œ{prƒ– ”€qo– –†sn{Ž››‡tn{‹››‹ypyŠ››Žymuƒ’š’|jo~“”}st~›”„tr{’¡™†umwŽ››‹{nt‡˜›|qt†˜›’|kp„“˜}nx†“—Š{ns„’™}rt™“}ru€‰”“ƒvu|Œ›–„vs}Žš—Š{qv†–™}rxˆ”™uy…’”„tv‚Œ—”„ss~‹›–„vu|ˆ–—‰|uv†–™‹{rx‰—š’„uv„–›–ˆyy„˜–†sq}‹‘‘„vu|ˆ–™‹{qv‡˜™Š~uu€—Œ~sq}—Žts€Ž—“„ur~‹‘“…rmy†“–‡yry…“—Œ~wwƒ”™Œ|suƒ™ƒvs}™–ˆyu~Ž–“ˆxq{‰“…vsyƒ’—Œ{qu’šŽ~uu~Œ–ƒxs~Œ™“„yu~š—‰|s}Œ“‘Š|qs…™}t{†“™Œ~xz€Ž™’€tq{‹—ƒyr{‰˜”ˆ}w|†”‘‰|su„‘†{pw…–Žst™–„xu~‹—‘„uu|‰–”…yw|‰˜—‹|ux‰”“Š~tt—€uvƒ“‚xxŽ™“„vs|Š––ˆyu|Š–—‰~y}ˆ–—Š~uu„“–ˆ|tx…–ƒyu™–†yw~‹–“†yu|ˆ““‰{u|…”—Š|txƒ““ˆ|ut|‰Žƒvt~Œ–ŽuuŽ—”†xr{ˆ–˜‹|w~ˆ‘–Œ~y}ˆ”—Œ~wx~Œ™€ww™Ž†|w|Š”‘ˆ{q{Šˆ|t{†“—Œ~w|†™€wy€Œ–Ž|ty†ƒyw~Š˜“„xu~Œ–‰|sy…“Œ~s{†”Žwy„–Œ~wyŠ”€tq{‹“…|w|ˆ‘‘ˆ~w~‰‘‘‰|s{…–Œ~uxƒŽ–“ƒxy‚‹”€ux€‰ƒ|w|ˆ”“ˆ{sy‰”“‰€uvƒ”Œ~sy…Ž…ywƒŽ–…yx‹”…{t|ˆ““ˆ}wyƒ“ˆ{rx‚‹‹~uv‚Ž‘ƒyx–“…|z€Ž”“‰{w|ˆŠ{u~†ˆ€zx’š’}uy„“–ƒ}€Š—™‹|y…“”–Š|w€‹ˆ|tx‚‹‹~uvƒ‰€yz‚‹Œux€‹”yxŒ™‘‰€|€Š””Š~w|„†|tyƒŽ†|su€Š‹us|ŠŒxu}ˆ…zw~Š˜˜Š~x}…‘”‹xyƒŒwy‚‹‚yw~Гނyw~‰Œ‚yw}†‘‘‰{t|†–Œxy„“—Ž‚„Ž–„€p}«“–p„xpŽ ‹|vQX¯ªšqSk}xˆ±Â—‡aQLb‘©ÈÁ™m89]›ÅØÕ”F'=]¤êÚ¦]9Sˆ ÂÝ»}]@,Z«ÌÖA,2L›êåÁ˜F?s¤âó«tW35ƒ±ºÙË}PQ=M£ÐÓÔ¦E4R™åôÀ„I2t¢Òä½wSB:r¬ÆÍÆ•WHCIÀØÁœT,PŽÜïĈ]*4ºØÞÅvDKCc¢Ä̼—M/@SŽÔæÈ’X!U™Óæ¾n:)1vºÕÕ®vMNct Ḛ̀Žc5EmŒÄÛ¿…V23n¦ÄÒµp75Gl²×È¡tPBa}™¿È¨€]?M|¿Í°‚XB:`žÃÕ»~B'2c®àÛ¶s?0Mƒ²ÒÒ¦vSBLvœ»Ë¶‡]F@\žÌÒ¾„H)6d¡ØÝ±sD3E}­ÇÍ©uQGOi˜ºÄ¹ˆXk©ÖÛ³pC.H~·ØÓ£d?=S‡³ÈšsJ=Qs¡Å̱M2Bs¬Þß±oB5J†ÀàÓiGB`‹¸ËÄŸwUKYx Åͯ{O4@t¬ÓÓ¦j93Nƒ¹ÓÇ”cED`‡®Ç¾›tTDTx¢ÅήwJ9Gx²Úפe95VŠ¿ØÄ^E?aˆ®Ä¾—oQBS«Çʦl?4L¹ÝÒ™]40UÄÖ¿`@Bd³Å¿šnPEUz®Ðͤo?0L‚¹ÝÏ–]:6[˜ÄмŒ]JIf·Ç¸˜oODW~¬ÎÌžh:3NƒºÚËV86]–ÂͶ‰]EHf‹±Æº–qPDZƒ°ÏÉfA6VÃØÅ‹V9XŽÀØÄŽX=@f—¾Ë³‡bOSjŽ®Âº˜sSJ[ƒ°ÍÆ™f@Fj𾯰†eTSm®Á¹˜tSL^‰¶ÒÆ™gB=`ÀÓ¼„W@Gk™¹Àª…bOQi‹®¿µ“nOH[†´Ï•c?=`–ÂжWCIn›ºÂ©‚bPVi‹­½°kJB]†´Ì¼\>/T.¬†t긛㈃ØL#ŒFJ–Ad´Y‹àdb®bi|Y¨@„Òdæ’´2Ž¡ E_z‹T¿£`ðçt¬‘Z¥d*’gDÅ¡c¬Ð_;›J2ˆJT¨µò™ò¤‘˜BXkMre¹ƒŸ§vÉÆX‹‡+tˆPŽ~më¿e¶ži\,h(+ gKµ¯¸ç–ŸÞym¢4$i>m5ßv˜ÀkŽ’E~d‚¬b¡¶˜á·t¸…-wd<:C¬|e⿖简¨_b¡.qq«}˜ÄwµC?‚KOc4ȾσŽdj`RlWŸÅœ€ËžSwlZ€WV¨ŠƒÓ¨{¡y‰+/{AEŠl‹Æ«×Þ€œÃrb`0U`6v^ Òšœ’q¡„:moAƒ“±¡ æ£d•vOe81`Bd±‡‡Ñý½z‡¢RX}:Iƒq—œj´Ép‚„NtkFygN±Àˆ¹À¥Ä\ˆY+lR)ch€À‹Žà¥†±xc}QkˆBc´•—²Žœž[qy&CyPc}vÂÒ—ËÒ„™•ZeA*x^1•…¹¬˜µ€i¢n4hoiŒtˆÎ£œÓb]T\?Tn­–®Ñ´Ç­^„—KK\Gpyd¡¦u¯ÀxxrY`7‚`ª´œÀ©¡ÃxGz[7TEMyiŠÈœ’β‘bm‚J\…[q£•£Ÿ|¢›R`iC\g_†‚ÊË ¸³”’hNhB3pdP‹¢À“º€i„^Vj^…—m—È£ £m@VY+P€o„šŸÎÄ—¶¨lytR]MR‰yc𣒢‚ˆ`\bO~‡‹ •§Ã™¤tUbPTWAlŽu±¤­¬—ž„Zt{YbvxЉ‡¨ž|c^\Yqc_•™Œ³º¬¯—–`FcYL_cv‚˜¸—ˆ£{t\mcy™„¨œŸ•v‰„RYbTiru’‘‹±­™•„†kYwmb†„vŽ‹œ}uŽugzhm†}ƒ‘¨†ˆsz{boxf~‘€‹‚•r€l~{mƒ„ƒž€”‰{„ogyjlvy•‘›††’ytzel}q~ˆ}’ŸˆŒŒy€{eppg…}Ž“ž’€ˆ|owjbsqy…ˆœ“”€z}lksfo€‰”Œ•œ†„mqrdotrˆˆ™™•‰u{oaqld}‚™“Œž‘„Œvhuhgxnx‘ŠŽ”}xzchwgt„|ž—™€‡„iml^sypˆˆŸœˆ•ˆu€q^pojƒš”žŠ~‡tkueh}x’‹’ŸŒywygjpjz†‚–Ž˜•‚{ntnfuy{Ž‹™”‹€rxlgrmr…„Œš’˜†€klsep{u‡•Œ–˜ˆ‰svqcqtl€†…›—‹—Œ„tfrkj}y}“‘’ž†Ž{ryfgyqy‰‚’~}€jmrevƒ{Š”‹—™†ˆovqcqtrˆŠ…™•—†yqjtkl€„–šŠ…‡qovhmxq€ˆ“™‹{{veqrj{€””‹—Ž‚ˆyluljytyŠŽœ‹y{hjulvƒ~Œ™•”‚†oqoet{w‡‹š—ŠŽ„w|oeqoq„†—’’™‡ƒrptfm{x„‰”›Ž‰wyvhoqm€††•“Ž˜Ž‚uktljyy€‘—Ž‹Œ{tujmuoy…„’—’‚ykqojy{{Ž™†Œtxjhvsx†„Œš’€llqht€{‡’–—†ˆƒrvqequs…ˆ†—•’‡{tirkl€}“š‹…‡tqvglvq€‹†’˜’{{vhqpi{€€’’™„ˆynvjjws{ŒˆŽ™Œyzjmulv‚€Œ–””ƒ†mrqguyv‡‰™–‰…w}qfsoo‚‚„—’˜‰€„tlthl|x€Š‘›‹‹yywhntn|†‚•Ž•‘‚|nrojv{|ŒŽ˜’‰Œ€uxmisou…†‹—‘’•†€}olojq{{ˆ’Ž–—‹Œ„vvogqrr‡Š˜••ˆ~€qjpjm|{„•‘–›Šˆvrqeluq‰‰–š”}~uholj{““’œ‘†ˆypthhvs{Œ‹‘’’“€{zhjoft€—™—ˆˆ€nrmdquv‰œ–Ž’‚vyjeoho€‹›•˜‹‡ƒomn`itqŠ™›•z{qeokjƒ—–’˜Š‚ƒohqehwy†”’œ¡Œˆvqi^feax„†™Ÿž¢•ˆ‹{johblny‹ˆŸ“ˆ‰{tp`hrhv‹™¢ž¥—v]]`\hlu’˜“©¨•’ƒwxc_sll‰œ•™œtyeZbcp||”©ž¦²Ÿ’ƒlk^H]h`v‡‘£Ÿž«•{€tbeen€|†¤ž—£˜ˆ}cacLWrp}’𭝡­£xq\[X\svv”Ÿ•žŠtgsdYt|~‘—¢­™–œihWTWUn~’ª¥§¨œ—‚hkhT`ru‚ˆ¥œ‹˜Šoj`\d]mŒ‹‘«­©¦•]W^LPeo‚ª¯™žœ€uh^j`b…‹ˆ¢ŸžŠ‚bR^YXjxŒž™¨¹£™š„ugT]_Tm…‚œœ£–†Œ}`ehbox…œ™˜ª¢‹lcRTd^h†–££©£Œ‹…kce`gmvŒ‘›œˆ€uo`]lnq‰—œ¥¢£¡‡}dWXV`jqŠš–¡©”Š}zj\joj~’œ—•›„syiY^^jyz’§Ÿ£ªž”…vtfS]hesƒ™˜•Ÿ’~€yjjho}{†ž›—œ“Š~mlhX\loyˆ•£¢›¡›…zlfactuy—’—“‡toueaqx‹“£¦˜™—soe^ZYnyyŽŸœŸœ•“qym`lsyƒ†”ž‹soihhdt„ƒ¡ Ÿšlok^cks€œ–“‹€zrrslt‚„‡”–•„„}jjneiqy‡ŠŸž’“{oorjjy}€Š’„„„snupqv{‰Œ›ž‹†|uidlhgy„Ž”™›ˆŠ|qurqvv‹„—‹†‚zyqitup}†‹’“—œƒ…}nnmlpoyˆ†ˆ•’ŒŠ€}pt|vy„‡‹’~}{olmovvzŠ•—‘„~~qmvts{…І‹Žƒ€€yvvu}€}†ŠŒŽŠˆy{umtxw}€„‹ˆ††€}z{w|‚ˆ††‡€wy{sx~~„‡…Œ‹„‡„{|yvyxy„ƒ„Œ‰†ˆ~~ttyux€€†‰„„wwupxyyƒ††ˆŠ‚}~vqvtv€€…‹†ƒywvouyy‡†Ž‹Œ…}~wqust~€‚Œ‹‹‰„‚zvwqsyx‡†‹Š‹‡~}ysuut|€ŠŒ‹ŽŠ„ƒ|vvsryy}†‡‹‹Š‰€}{ttvt{€ˆŒŠŠƒ‚~vwtsy{~…ˆŠ‹ˆˆ€|{tsvuz€ˆ‹‹„‚wwury{}…ˆˆŽ‹‡‡€{{uswv{ƒˆ‹Œ‹ƒ~vvury|}†‰ˆŽŒˆˆ{{usxvy‚„ˆŽ‹‹Œ„€}uuvrx}}†‹Šˆˆzytqvvy‚„ˆ‹‹Œ„€utvqw}}…‹ˆ††yyvqwxy„†Ž‹‰‹„€vtwtx~~„ŠˆŒ……yywqwyz‚…†‹ˆ‹„~~wtvtv„‹ˆŒ†„yywqvyy‚††Žˆ‹„}}vrvsv€…‹ŒŽ†„wwvpvzyƒ‡‡Ž‡Š„|}vqwvx€€„Š‹…‚ywwrw{{‚‡†Œ†ˆƒ}}ytwwx€„‹‰‰‹„€ywxtw}}‚ˆ†‹†‡ƒ{|yswxx€„‹Š‰‹„€€yvytw}}ƒ‰‡‹††‚z{xswxy„…‹ˆ‹„€€wtxtv}}ƒ‰ˆ‹†…‚zywrwyy€„…ŒŒˆ‹„xtwtv}~‚Šˆ‹†„‚{ywrvyy„…‹ŒˆŠ„~xtwux€„Љ‹Œ†„€yywswz{††Œ‹ˆ‰ƒ~}wtwuy€€†‹‰‹Œ†ƒ€yxvswz|ƒ†ˆŒˆˆƒ}{vtwvy€†ŒŠ‹‹…xvvtx{}„ˆˆ‹‡‡|{vtwwz€†‹Š‹Šƒwvvty}}„ˆˆ‹††€{{uswv{‚‡‹‹‹ƒ€~vvvsx}†‰‰ŽŒ††€zytrww{‚„ˆŽ‹‹‹‚€}tuvry}€ˆ‹ŠŒ††yytrxw{„…‰‹‹‹€|tuvsy€ˆ‹‹‹††xxsqxy|„†ŠŒ‹Š{ttut{€€ˆŒ‹‹„„~xxtqxy}…†ŠŒŠˆ}{tsutz€ˆŒ‹ŽŒ…ƒ~wvtqwy}…‡ŠŒ‰ˆ€|ytsutz€‚‰‹‹„|turpwy~†ˆ‹‹‰ˆ{yqrut{‚ŠŠ‰€zsust{|‹Š‰†„{yunrvv~„ˆˆ€ysroqyy€‰‰‹Š…}}zruwx‚†ŒŠŒ†}wttpt|}ƒŽ‘’‹„{yvppsu{€„Ž‹ˆ}yvvsv~€„ˆ†€trnhkov€†˜š–•ƒ|rooimx{‹“’Šˆtrqnqu|‡‰Ž™˜‘ކ}tihjhnz†”™—ŽŒ„xtqnpsyƒ…Š”’‰€ztjkoovˆ–™˜‹‡ojhejmv„ˆŒ——“†€ymnspv€†’’—’„€zkgegpt|Œ‘”™’…xigljpz€ŠŽŽ•’‡ƒ~tpnpyzŽ‘’–”ˆ{vpdeknv~…’“’˜”І~wqlowx|‡ŠŒŒŠƒzytkmtx€„Š””’”Ž„wrmgkux}‡‹ŽŽŽ‰~}yrrty€‚†Ž‰Œˆ€zsqplqz~ƒŒ“’ˆ~yvoopu}ƒŒŒˆ‰‡ƒ~xxwsx…ŠŽ‹…†€xusqqtzƒ‡Ž‹Š‡„€yyytw|~ƒ„†‰…ƒ€{yxxyy~…†ˆŒ‹ˆ…‚€|wwwux|ƒ„†Š‡ƒ„~}|||{ƒƒ„†…ƒ€~~|yyzz|ƒ‡‡‡‰‡ƒ‚€~|yz{z~‚ƒƒ„„‚€€~|}~~€ƒ†„„…ƒ€}|zy|}|ƒ„…………‚€}}~~~ƒ‚‚ƒ~~}{~€‚„……„„ƒ€~~|{{{~~~‚„ƒƒ„ƒ€~}€€ƒƒƒ‚~|}|||}€„‡…„„ƒ~}~|z}~~€ƒƒ‚~~~~~‚ƒƒ…ƒ‚€€~{z|||~€‚ƒ…„‚‚ƒ€~~~~~~€€€‚€€€~}}~~€‚ƒƒƒ„ƒ€€~}|}~~~€€€‚‚‚€€€~~€€€‚ƒ‚‚€~~~}}|~€ƒƒƒƒƒ€~~}}~€€‚‚ƒ‚€~~}}}~‚ƒ……„ƒ‚€~|||{}~€ƒ„…„ƒ‚€~~||}}‚ƒ……„ƒ‚€~}|{{}~€‚ƒ„…„ƒƒ€~~||||~€ƒ„„„ƒ‚€~}|||~~€‚ƒ„…„ƒ‚€~~|||}~€ƒƒ„„ƒ‚€~}|}~~€‚ƒƒ„ƒƒ‚€~}||}~€ƒ„ƒ„ƒ€~}}|}~€ƒƒ„„ƒ‚€~}}}}~€‚ƒƒƒƒ‚€~}}}~~€‚ƒƒƒ‚€~}}}~€ƒƒƒƒ‚€~~~}}~€‚ƒƒƒƒ€€~~}~~~€‚ƒƒƒƒ‚€~}}}~€‚ƒƒƒ‚€~}}}~€‚ƒƒƒ‚€€~~~~~€‚ƒƒƒ‚€€~~}~~~€€‚ƒƒƒ‚‚€€~}~~€€‚‚ƒƒ‚€~~~}~~€‚ƒƒƒ‚€€~~}}}~€‚ƒƒƒƒ‚€€~~}|}~€‚ƒƒƒƒ‚€~}|}}~€€‚ƒƒƒƒ‚€~~}}~~€‚ƒƒƒƒ€~}}}~€‚ƒƒƒƒ‚€~~}}~~€€ƒƒƒƒ‚€~~}~~~€€‚ƒƒƒƒ‚€~~~~~€€‚ƒƒƒ‚€~~~~~€‚ƒƒƒ‚€~~~~~€€‚‚ƒƒƒ‚€€~~}~~~€‚‚ƒƒ‚‚€~~~~~€€‚ƒƒƒ‚€~~}~~~€‚ƒƒƒ‚€€~~~~~€‚ƒƒƒ‚€~~~~~€‚ƒƒƒ‚€€~~~~~€€‚ƒƒ‚€€~~~~€‚ƒ‚‚€~~~~~€‚‚‚‚‚€~~~~€‚ƒ‚€~~~~€€ƒƒƒ‚€€~~~~€€‚‚‚€€~~~~€€€‚‚‚‚€€€~~~€€€‚€€~~€€€‚€€~~~€€‚‚€€€~~~€€€‚€€€~~~~€€€€€~€€€€~~~€€‚‚‚€€~~~€‚‚‚€€€~~~€€‚‚‚€€~~€€‚‚€~~~~€€‚‚€€€~~~€€‚‚‚€~~~~€€€‚‚‚€€~~~~€€‚‚‚‚€~~~~€‚ƒ‚‚‚€€€~~~~~€‚‚ƒƒ‚€~~~~~€€‚ƒƒƒ‚€€~~~~~€€‚ƒƒƒƒ€~~}}~~€‚ƒƒ„ƒƒ‚€~}}}}~€ƒƒƒ„ƒ‚~~}}~~€€‚ƒƒƒƒ€~~}}~~€ƒ„„„„ƒ€~}{{|}~€ƒ„„„ƒ‚€~|||~~€ƒƒ„„‚€~}|zz}~ƒ†‡††„€~}zyyy|~ƒ„…†…ƒ€~}z{}~ƒ„…„ƒ‚~|zyz}~€ƒ…‡‡‡†ƒ€~}{yz|}€ƒ„„…„‚€~~}|}€ƒ………„‚€~|{yy{~€ƒ‡ˆ‡ˆ‡ƒ€~|zy{~€ƒ…††…„|yyyy}€„†ŠŽŠ‰…~xtrpqv}ƒ‰Ž‹ˆ‚|ywuuy~ƒˆŒ‰‡„€ytpqrt}ƒˆ’””ˆƒzqmklms{‚†’އ€yrttvz‡Ž†yxrkbgqx}}‘’”’’‹‹„‚~qqiqyyywˆŒŒ‰Š†rqo}}sƒ“ š™‘€yegb[_h…–ª¤™›’Œtqmdjnˆ‘ˆ~Ššˆ…z~ƒ}‡ˆŠj_ijzpv”¦¡ª˜ˆpcfioVo—¢ŸŒ‡piUZyjp…®´ÓÿƒHtvUh\S•o‘„€R›|ž•y¾¬Ó}lNX[Wyyu߸ۄc„Gi6|‘Ǩø­q>LKH|ÓÇÿÏÖ’YR/]5ImžÌ¢¾ˆ|`BplŽj¢×ÁÎvjC11(sd’±Ìï¹—I[WGoi¥©ÄÉ´«:"+KLˆíòçï¤}787E_>†¤¿³ƒ|K]Gi¡•°°éÚ®}0@#*Aaˆˆ½¼Ð­\GArpŒ¡´éÇÅ¢r"(^gz¼âöÏÄ•_L7]msiˆ¹¬¢fLLKYn¬¦«ÁÉÚ›_1?Q?ft‘  ´§‘G;^v”©ÂÒ¾˜ŒK'Vr€ƒ½âÕ¾˜_TVr‹qt¥yR=X_h“¤ª®¸Â·ŠHD\cjm|ˆ’ŒŠ’d?Lt›ª««ÌͧlA:d€s½ÒÆ¢†lodm’Ž€|–…a4J]g}“©¤²®µ¨gLTtz|~}˜†|}jO^vyƒbort€“t§ÆÕ¨‰ruYJG-AOz¦¾­¦£¥Žnjo……¢”mbZok_GX‰—·µ­’Œ–nVfw€q[]d_y~~†Âþ©‰~qXMA=Xk”±¡ƒ˜“Ž|h…¢¬ª‹abTdX;Ii™£¹­˜š†’“‡hkŽ‘œyZPLQSpk|½ä׸‹…y^[CITo‰¢«{vv}ƒqmsŸª¸Ã…hfbaN7c~š¤œŽ~ƒvŒu}޳²¥zZ^GMT\by¥¾Û¶yt]_Vl‡”µ­–pii^_Lb±¶¼œwop[Y\€’–—‡ˆslhoyr¢·¯–ˆrjMNWcy…ª´·‚~e]M[r€˜¡¼²˜~igSUTm†¥§¯’}smwdoz˜”ya^ou|™¨ªžƒ~d_Q_yy‘–±¯š‡imWW_p‹§©²ž{q`eVauƒ˜’¤zhqkxsƒ–˜‰‹ve]]yzˆ£ª–tq[Ubq¢ª­¡~r[[QZt˜—ª¨ˆindkjy’‘—‡rf_qo|„”¡””‚~m`iqˆ‰• ›vd_VYtƒ˜™¨­žql_^cq‹‘œ˜“}n_hfp}Žž–˜Švdfl~~‹—œ˜ƒ€og[[t€”–¢§˜Šnj]]apŽ”¡¤˜~lZbZevˆŸ˜ —’€ihdts€—œŠ‹|sc^qwˆˆ—“‹wwhdht‘ž›Ÿ“|o[_Ydw‰Ÿœ¤œ–if_kk~’œ¢’”…vd\hk|ƒ•˜“ƒ‚qihr†Š–•›|qde]fy¤œ“lg_gk€’Ÿ•”ƒua[cgxƒ›¢Ÿ—Œˆrhbmy~’›Žƒ}roakwˆ””œ”Žzoifjm…“žœ–•‚u``cfw„ž  ˜„ne\fqzŽ˜¦™…yo[ai|…Œœ˜–|ulli€‹—˜•”€ucbdfvƒ ¡˜…ne_iqzœ¨˜„xjY`ev€ŽŸ‰ƒynidw€Ž‘•˜‡~mokgs}––™–…nibirz‘¬ž”‡viTZar€§¨¦…zh`Yoyˆ“›¤’‰xrjaio†–˜“ztjptuˆ’¡–‡ylY`et€§¨¦‘†we_Xkv‡•Ÿ«‘{rfX^e~ˆ“ž „~roigzƒ“““’ƒzgiir|ƒšƒzh`Zmy…–£° ’~oaQX`x…”¥§¤€qhc_o|–šž“ˆrniimrˆ•‘ˆwohsy˜¥š~odVZay†”§ªªoaYThyš¥­žwk_Y^d~‰™œœš„zkoqt~‡˜‘Œ‚zqaho‰•¥¥ †ygXRQi{’ ®·ª™|m\RT^vƒ’œ£¡‹~omnr~‡‘’Žƒsbagu~†’˜›”~qhiz†Ž’–—ƒoaUVdy›§«¯§Žv_TQ[htˆ“‹|wvƒ†ŒŒ„†vdWVj{Œœ£ž‘ƒpddtЉŒŒ‰~q^YUb™¨¨®­ª˜u_OLTiyˆˆ˜ “€uy|‘‘’…€}}gVU_|–˜™‘–†wgdtŠ–ˆ‹…~~nbUY_|¡¨®ª©¥˜_VKQfy‚€‡†—˜€yu~ˆ›ž•‘{yynYOZi‰˜š–އ~nkn‰Ž†|mj]USYq–µ²±©¢›‡oXTP_{ƒƒ~€„ˆw{Œ§¢’ƒpsp_TTi˜˜”„€ƒ…wrzˆ¦§˜ˆyh[]RTZiŒ­¼°©ž’{j__cwŠƒ{rr|€zw„Œ®­ž‡uiohY\f}œ”ˆ}mv~{ƒ—­½¨y^OLOKWh†±À·¥˜‹„€pkioth^fstw‚”Ÿµ·£Œqgiodbq}˜~l``vƒŽ ¶À·˜~aJJMRYi µ¬œƒ€|€€‹–y`VUcntž­¶¥‹vgoxwt~ˆ•‡s]OSf}„”©½É¿¢eLGPU^j€›®¤€tt~†Š•›§™yYIJWgo’¯²Ÿkbpƒ„ˆ˜™•€`H7Dbzˆœ´ÅѾœ}^LN^aiu…ž£‘wkdl€Š—¢«°tXEJYgr€–¨¨s`e|’•¥£¢’vO5+=dyŠŸ·Ç̸’wZRaotvŸ”xaUYiƒ‘ž¨«¹´–mTJThn{„Œ“’s_Vj‹¦­µ­©iE)*Di{Œ£¶Ç¿¥ƒkY^w‚„‹•˜„bSKWq†–Ÿ¨«·«ˆjXZfwy€„‚ŠŠ{`U[u˜¤¯¶µ®¡‡_B-6Uo~‹žªµªzfboˆ‘Ž–xZJITpƒ‘𦭦ˆsgj{ƒ„‚€zyyhXO[x—©°·²¬Ÿ†hL?E`t}†Ž™—ƒsjj}™—”’’Œt^QQ_tƒ‰Ž”œ’€rs|•’ƒ{vraRQ^~—¢¥§¡™”€iYTd~ŒŒn_^f~“™˜”–—Žygdft‰ˆ~}€wmlxŒœ¥¡›Œ~sfZR\qŒŸ¢£œ’se[]f€—¢ ›—‡yg__ds„™˜ˆunjt}ˆ—›˜†ynjdan~“¡©¨™†oe_[]l†œ¬ª¥–€l^\Yaq‹¤ª©’mc^dj}¡ ’‰}uigo{ˆ‘  –‚qjccdvŠ™§§¢xd\^_k~˜ª¯¬œŠp_VX_i€–¨¨Ÿ•…wgfiq{ˆ˜›—ˆ~tjhiv—›šŒ~pkjkt’›™Ž~h][biyŸ«¨¡’k\\_jvˆš¡ž‘‡ykddqyƒœž’…xqhgo{ˆŽ——€phdio}£ž˜ˆv`W\dr€—¦¨¢”†p_W\gsƒ”££š~sediv€‰”—”…yplkmz†’––“‡yifhoy†—Ÿ ˜‹}i\W`lzŒ¤µ°¤’iVT[l{Ÿ§¤“ƒre]^m|–ž –†skgiq‘˜š•~fZWco€–©³«Ÿ‹v_NPZo€–©±¬—†q^SSdu‡–¦¬¤”€sfadp‹”––Œ{nfjoz‰˜¢ž—Š{fXZeu„™©­¥“kYOSdw®±§”~m]X[lŒš £•ƒtjfdo~•——Ž‚pijp{†—žŸ”†xfYS`r„—§´®ž‰vbRR\qƒ•¥«©—„pbZZgyŒ—Ÿ¢œ{pjimv‡”Œ‚ticlw„‘¤’rbWYcyŠœ¨­§’j[RScw›¨¬¤•€pa\_k~Œ˜šš’ƒthhktŒ˜—’ˆpdel|ˆ—¢¤œ‰yeWOSf|”¤°³¨”zfVQTe}Ÿ¥¨žŠve`]dr…”™›•~qllu|‡•’†}qibft„”¦£—…rdYW^p…—¥ª©š†r`XU_nƒ—¡¦¡™‡uicfky‡“—’Ž‚wkiox…Ž˜™“†wlb`fuŠ›§©¦–iWPN[pŠ¡­³­ž†p_VX`t‡™¢¡œŽmddis—˜‘‡€tmlv‚Œ–™—Š{l`]]j|‘£­¯¤”{fWPT_wŽ£­®¦”i^Z]i{› œ‘ƒtkgnwƒ“œŸ”…uib`hu…”¢¨¢‘zkbafo€‘£ª¦–}fXVYcp†¡³¹±ž†pbZ[]h{žŸ—ˆ~vsuy€‰˜ž›Œud[Z^ixˆž¬±§‘xgb`fo’¡¨ž‹oYQU`o‚›¶Â¾¬nWNOWaoˆŸ©¤’~onq{„Š”¡¥—€bNMScw‰™¬·± €cV[er‚ާ¤”zZGLYn‚•«¾Ã´œyZNNXcq~’¢¡—‚php{‰”–œ¢œ‰nSDL[p†–£®²¥qYXctƒ“›£¤—ƒeH>J`y“¦¹Å®‘nOIQ`p{†•ž–ˆucdr‡š§¥¤£“|^E=Lc}—¡¦«¨–~cS]p…˜¢£ š‡pQ:_‡¯´Ÿš—“r7,S{Ÿž˜§©›y;(N€Ž|’¤”i1)TÆÈ·ËÝГA-Idjn¸Í»|‘¢›{fp{u]t¯Î°†–³¶‹E:a„‰_ZÁÚ¶¡±«v,+Ur·ÒÇ|AH`{fKm™¶œZPmŸ}{œ­¡\(Ioqf—Ô÷ÛŠho~yC3^Œ§‚]x¦Ì¾Œ¢¨‚5Fy™††¶ØÓ‹@;\yRhžÆ¶hFf—´Žq¬­h@ukÙÿߎZ_rtA"S¸œg}¯Î°m§d]G%\ŸÅ•r‰®¬zRZˆ{I5xª´zY™Æ¸Œ\dy†p.2xª¤vƒÀÓÕov|C-y v¢ÕÜÀpCXww:+z½Éœr…¢°“NMŽºšC+fŒŒgZ•ÜüÆdSrs;ežÁ¬—´Ô΃@Q~‡dAU{›žvmšÌʉgx‚xV?Psž¢ƒ¦¶›klƒ‡~cUh€weÂÈ¥‚‡‹yW+(Vˆ™‚‹ÃÚ¾ƒ^gw{_=[˜·”Ye˜¬™kb¹¹u;SƒdBj¥Ê¿…k–…B.^’©‘‚—ª·•]Tr}Q\~”•{u‡°n{ŒŠhQmІu}’œŽ`^§—ro“œhD]«a|¬ªz@@k£‚s§ØÊ|8EjvbD\ŸØØ‰Yyž“Z:a•¹§lZ}¢’SO„°°†kn{qJZ‹º¯„‹žŠbPWj€h\{›ª•Šª±¥ŒiadbT5Q‘²­šº²“_@_†‘iIv§¨|Tl¸±{h¨Š8N…Ÿz Óæ¼_:Zxd+'f¡Ä®‡‘¹Ð§_QoƒlB?\›…q‰¶Ë§€Š•‘qH@Jases¡Çʪ› ŒmG7Lewtm•ÀÁŸ~¥˜wMC[qqSP‹ÀÇ£‹ ¬zKHh€rCDv™Ÿ‡ˆ±ÑÙµvZ^cF&^–¾¿¯ª°¯‰P@]ˆzux€…q[d’¿¾§ ˜ƒ`?18^Œ£¬¸Ã·‘woa\eryutpfv–¦¢¢·»˜kJ>I`nm{¦¾¤yl€‘‘‰„•’j66f‰’‘ ½Å°€K@_wrh~¦³¡jnƒ…v€–“w_]jy…ŠŒ–¡œƒrtz{{€uqtru€›¡§}b^dghx£«{aduvož²«nVUdhf{§Ã·˜pkje_j¥—}s{„‰˜Ÿ‹l_hokr“–€z†ˆ„†„uea`aq‹Ÿ¥©©—rk`Zj€‡‰Šˆ‚‡†}‚’•„sppnuzx~Ž—Š{€ŒŽŠˆƒ|vseWd€“™ © ŒyfVXn„Ž–¢¡Špd``p‡˜Ÿ¦¤Œl`deh|”Ÿ ›‰pgptq{’›‘„|spz‚€‚‘—„qov{€ŒŽ‰t_as€ˆ–¢¡•‡r\Wfw€¡§™†yjbiz„› ‘}pmghyˆ–š’€xzwpt€†€‚€€‡Œˆ„‰ˆyjksw€–‘‘{gcoy€Œ™™‡{hbn|‚Š˜›xmel{…—Ž}|wv„€ƒxxƒ‡„…Š„wpqpt„•˜““Œxd`em}’Ÿœ˜‘}d[dp|ž¢˜}fYbt€‹œ¢™‰{j_ew‚†—yvtwƒŒˆƒ‚}pku€‰“š”…{qfanŽ•šˆwmhfp„•šœ˜‡pddgo‚•šwhilmxŠ”“‘vv{xv‡ƒ€‚€„‹‰€~{rs~„ˆŽ…|zwoq€Ž’”“Š|rokkz‹““”ƒuponu„Œ‹Œ‡~z}}|€ƒz{‚‹Œ†‚{ols|ƒ˜•ˆ€wkfo€Œ–žšŠynd_h~š  ‘}of`exŒ–™š’€tnln{ŠŠ‡„{tv~ˆ‘„zwtpv„ŒŽ‹~pnrt|™˜‡zicjt  “†yg^co}Œ¡˜Œ‚uhfp{‚Š…~vt|ƒ„‚ƒƒ}~‡ƒ{z~~ƒ‰‹ˆ†€slqx{ƒ‘˜•ƒvjhov}‹™˜Ž†tmqy}ƒŒŽ„}~|y}…ˆ†‡„{ty€Š„{xtqx‡‘”“ƒoffit‰›¡ ™‡m\Zak€™§¥žxdago|‘œ˜Ž„viit†’š“…{tmmw‚ˆŒ‹€xy|~…އ€xlgpŠ“žqf_ewˆ”Ÿ”€qjeiwŠ—›œ”€nijkt„‘“’„wpstu‡ˆ†‰Œˆ„†…yumfky‚ˆ” Ÿ’…znkqwy’•ƒrmoty€†‘ „jbmsrz‰›¦ž‡qmyynn€““„yy‡—“„}„‡nRL^}“Ÿž¥›vSKd†•›š†gRY~˜œ£§”oPBSwšœ©³›sWRbpz€ƒ’žzp€–’‡{{o^T`…£¥™œ‘v_Ud‚“……‚j_i‡Ÿ¤œŽŒ‰oOGcˆ™›š£—wULhx~”¢–…x––gdwuc`q•­¨”„Ž}c[t—™…rkx~tn{£¾­wrnYMVw¥·ª”Œ”„`LUwŠ€y†š’z¥˜|g^fhdi|¡·§†ƒnem‚š•{dbuzqw“·Á¨…eZ^UL\Š½Æ­”†ƒtYIS~¡š€t‚“ˆyw‹«­ŒhVci\Yn—µ±š‚€‹ƒofw””yaXfx†“¯Ã°ŠfTUQUi†¬º­•‚}r]Ykˆ™€wx€zqw‘°­yprkYTc…£žˆ€ ‘xp~“ŽnSPpŠ„{ˆ«¿¦|]Ypzoj~¦²•teq€xv‰¢šz`by€~£§’vclxsot…‘‰x|Œ’‹’‚eX^r€†Žš¤ €`Ug„†’¦®˜pSQk{z~’¯±‹eTb|ƒ€† ¹©zRLgzwv„¥·žsYd‡}{‰ž™}^Vr“ŽŽœ~[GSq‡•ª¶¦_R`ksŽ›™‚j^j~„Ž£¶µ–pVNY^^m¶¸šƒ‰ˆtei€~b_z™š‹‡“£—qRRr‰€s{•¦“ugz¤Žyw€tUBNuœ®¯­³®bGNdnqx…––†x}”¤ž‘‡‚sXIMdƒ–¢©®¨‹j^hz}‡ˆz^Qe±¸´²«Ž\-2_ƒš°ÉÕ¹…\N_ry}…•™{RCY€¬³¹¼«M1 div { padding-bottom: 3px; } div.prefsContainer p { padding-top: 1em; } div.prefsContainer input.checkbox { vertical-align: middle; } img.prefsLinkImg { padding-right: 1px; } span.prefsAdvanced { padding: 6px 10px 0 0; font-size: 71%; font-weight: normal; } div.prefsErrorDiv { border: 1px solid red; display: inline-block; padding: 2px; } div.prefsError { color: red; } /* Block styles. */ .currentBlock { border: 2px solid red; } .blockIcons { padding-top: 5px; display:none; } .blockHeader:hover .blockIcons { display: block; } /* Help styles. */ body.help_about, body.help_entry { margin: 0.5em; } .helplink { cursor: help; } .help { background: #fff; color: #000; } .help h1 { font-size: 125%; padding-top: 0.5em; padding-bottom: 0.5em; } .help h2 { padding-top: 1em; padding-bottom: 0.5em; font-size: 110%; } .help p { margin-left: 1em; margin-right: 1em; margin-bottom: 1em; } .help em { display: block; padding: 5px; margin-left: 1em; margin-right: 1em; margin-bottom: 1em; } .help em.helpTip { color: #090; background: #e0f0e0; } .help em.helpWarn { color: #900; background: #f0e0e0; } /* Keyboard key style */ .kbd { background: #eee; color: #000; white-space: nowrap; padding: 1px 2px; border: 1px solid #888; font-size: 90%; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; } span.keydownImg { background-image: url("graphics/keys/down.png"); } span.keyleftImg { background-image: url("graphics/keys/left.png"); } span.keyrightImg { background-image: url("graphics/keys/right.png"); } span.keyupImg { background-image: url("graphics/keys/up.png"); } /* Source markup styles. */ table.lineNumbered * { line-height: 16px; } .lineNumbered th { background: #e9e9e9; border-right: 1px solid #e0e0e0; border-bottom: none; padding-left: 10px; padding-right: 10px; text-align: right; } .lineNumbered td { vertical-align: top; width: 100%; white-space: pre; background: #fff; padding-left: 10px; } .parentheses { color: #2a6; font-weight: bold; } .comment { color: #aac; } .htag { color: #569; background: #d5d6da; font-weight: bold; } .metac { color: #0ff; background: #d5d6da; } .id { color: #e82; background: #e4e4e0; } .attr { color: #6af; } .value { color: #d46; } .color { color: #f57; } .eol { color: #26e; } .url { color: #962; } .file { color: #444; background: #fe4; } .class { font-style: italic; } /* Sound selection. */ ul.sound-list { list-style: none; } .sound-list li { height: 24px; } .sound-list embed { vertical-align: middle; height: 24px; } /* Calendar Popup. */ .hordeCalendarPopup { border: 1px solid #ccc; background: #fff; width: 12em; } .hordeCalendarPopup thead { font-weight: bold; } .hordeCalendarPopup th { border-bottom: 1px solid #ccc; } .hordeCalendarPopup tbody { text-align: right; } .hordeCalendarPopup a { color: #000; display: block; padding: 2px; } .hordeCalendarPopup tbody a:hover { background: #ffc; } .hordeCalendarPopup .hordeCalendarCurrent { font-weight: bold; background: #eef; } .hordeCalendarPopup .hordeCalendarToday { font-weight: bold; } .hordeCalendarPopup .hordeCalendarWeek { background: #bbb; font-size: 90%; font-style: italic; } .hidden { display: none; } /* Redbox styles. */ #RB_overlay { position: absolute; z-index: 100; width: 100%; height: 100%; top: 0; left: 0; right: 0; bottom: 0; min-height: 100%; background-color: #000; filter: alpha(opacity=60); -moz-opacity: .6; opacity: .6; } #RB_loading { z-index: 101; width: 66px; margin-left: auto; margin-right: auto; margin-top: 200px; padding-bottom: 66px; text-align: center; background: url("graphics/redbox_spinner.gif") no-repeat bottom center; } #RB_window { z-index: 102; background-color: #fff; display: block; text-align: left; margin: 20px auto 0 auto; position: absolute; } #RB_window p, #RB_window ul { margin-bottom: 3px; overflow: hidden; -o-text-overflow: ellipsis; text-overflow: ellipsis; } .RB_confirm { background: #ffc; border: 1px solid #ccc; padding: 1em; } .RB_confirm input { margin: .2em; } .RB_confirm ul { margin-left: .5em; } #RB_info { width: 30em; padding: 1em; border: 1px solid #ccc; background: #ccf; } #RB_info input { margin: .2em; } /* Color picker styles. */ #color-picker { color: #999; background: #000; padding-bottom: 8px; border: 1px solid #111; width: 148px; height: 155px; z-index: 200; } #color-picker .north { background: #111; border-bottom: 1px solid #171717; font-size: 90%; } #color-picker .north div { color: #999; float: right; padding: 5px 7px; cursor: pointer; -moz-user-select: none; -ms-user-select: none; -webkit-user-select: none; } #color-picker .north div:hover { color: #fff; } #color-picker .south { margin: 32px 0 0 10px; cursor: crosshair; -moz-user-select: none; -ms-user-select: none; -webkit-user-select: none; } #color-picker .south img { height: 100%; width: 100%; position: relative; top: -8px; left: -1px; } #color-picker #color-picker-cursor { background: url("graphics/color-picker-cursor.gif") no-repeat; position: absolute; height: 9px; width: 9px; z-index: 101; } #color-picker #color-picker-cursor img { height: 100%; width: 100%; position: relative; top: -8px; left: -1px; } #color-picker #color-picker-hex { padding: 5px 0 4px 7px; cursor: text; float: left; } #color-picker #color-picker-hex:hover { color: #fff; } #color-picker #color-picker-hex-edit { float: left; } #color-picker #color-picker-resize { float: right; top: -14px; left: 7px; height: 14px; width: 14px; cursor: se-resize; } #color-picker #color-picker-sphere { height: 128px; width: 128px; } .color-picker-palette-src { background-image: url("graphics/color-picker-palette.png"); } .color-picker-resize-src { background-image: url("graphics/color-picker-resize.gif"); } .leftAlign { text-align: left; } .rightAlign { text-align: right; } .leftFloat { float: left; } .rightFloat { float: right; } /* Activesync styles. */ .activesyncHdr1 { width: 30%; } .activesyncHdr2 { width: 22%; } .activesyncHdr3 { width: 6%; } .activesyncHdr4 { width: 10%; } .activesyncHdr5 { width: 12%; } .activesyncHdr6 { width: 10%; } /* Toggle quote styles. */ .toggleQuoteHide, .toggleQuoteShow { cursor: pointer; background: #ddd; } .toggleQuoteHide:hover, .toggleQuoteShow:hover { text-decoration: underline; } .toggleQuoteParent { margin-bottom: 8px; } /* SpellChecker styles. */ .spellcheckChecking, .spellcheckIncorrect { color: #f00; } .spellcheckIncorrect, .spellcheckCorrected { text-decoration: underline; cursor: pointer; } .spellcheckCorrected { color: #090; } /* Permissions. */ .permsAdd, .permsDelete, .permsEdit { padding-left: 3px; } /* KeyNavList styling. */ .KeyNavList { background: #eceff0; border: 1px solid #919293; border-bottom-width: 0; -moz-box-shadow: 3px 3px 3px #888; -webkit-box-shadow: 3px 3px 3px #888; box-shadow: 3px 3px 3px #888; overflow-x: hidden; overflow-y: auto; /*padding: 2px;*/ position: absolute; z-index: 10000; } .KeyNavList ul { list-style-type: none; } .KeyNavList ul li { cursor: pointer; height: 19px; border-bottom: 1px solid #919293; padding: 5px 10px 0 10px; color: #000; white-space: nowrap; } .KeyNavList ul li.selected { background: #c2ccd0; } .KeyNavList ul li:hover, .KeyNavList ul li.selected:hover { background: #36525d; color: #fff; } /* Tag lists. */ ul.horde-tags { display: inline; list-style-type: none; } .hordeACListItem, ul.horde-tags li { display: inline-block; padding: 2px 4px; margin-right: 4px; background-color: #fff; color: #000; border: 1px #999 solid; font-size: 90%; font-weight: normal; line-height: normal; } .header ul.horde-tags li { font-size: 72%; } .hordeACListItem img, ul.horde-tags li img { vertical-align: middle; } /* Growler notice styling. */ #Growler { width: 340px; } #Growler div.GrowlerNotice { zoom: 1; padding: 10px 10px 10px 30px; margin: 5px auto; text-align: left; display: none; min-height: 20px; border-width: 1px; border-style: solid; background-position: 3px center; background-repeat: no-repeat; cursor: pointer; } #Growler div.GrowlerNoticeHead { font-weight: bold; } .GrowlerNoticeBody { margin-right: 30px; overflow-x: hidden; } #Growler div.horde-error, #GrowlerLog li.horde-error { background-image: url("graphics/alerts/error.png"); } #Growler div.horde-error div.GrowlerNoticeBody { padding-right: 15px; } #Growler div.horde-message, #GrowlerLog li.horde-message { background-image: url("graphics/alerts/message.png"); } #Growler div.horde-success, #GrowlerLog li.horde-success { background-image: url("graphics/alerts/success.png"); } #Growler div.horde-warning, #GrowlerLog li.horde-warning { background-image: url("graphics/alerts/warning.png"); } #Growler div.horde-alarm, #GrowlerLog li.horde-alarm { background-image: url("graphics/alerts/alarm.png"); } #GrowlerLog { position: fixed; bottom: 0; left: 0; width: 100%; max-height: 200px; z-index: 10000; overflow-y: auto; } #GrowlerLog ul { overflow: auto; } #GrowlerLog ul li { color: #333; font-size: 100%; list-style-type: none; overflow: hidden; padding: 10px 30px; border-bottom: 1px dotted; background-position: 3px center; background-repeat: no-repeat; } #GrowlerLog ul li:last-child { border: 0; } #GrowlerLog li.GrowlerInfo { font-weight: bold; background: #999; } #GrowlerLog li.GrowlerNoAlerts { background: #999; } #GrowlerLog span.GrowlerAlertDate { font-size: 90%; font-style: italic; padding-left: 10px; } div.GrowlerNoticeExit { background: url("graphics/close.png") no-repeat; cursor: pointer; float: right; height: 20px; width: 20px; text-indent: -10000px; overflow: hidden; } .horde-success { border-color: #759f3d; background-color: #8fc34b; } .horde-error { background-color: #f03232; border-color: #cb2a2a; } .horde-warning { background-color: #ffdf4d; border-color: #e1c444; } .horde-message { background-color: #689fb4; border-color: #5c8c9f; } .horde-alarm { background-color: #f49e51; border-color: #d38847; } .horde-error { color: #fff; } /* Auto completer styles. See tags section too. */ .hordeACBox { background:white none repeat scroll 0 0; border: 1px solid #d0d0d0; cursor:default; text-align:left; min-height: 58px; padding: 4px; } .hordeACList { display:block; overflow:hidden; width:100%; cursor:default; list-style-type:none; margin:0; padding:0; } .hordeACList li { display: inline-block; font-size:90%; white-space:nowrap; } .hordeACTrigger, .hordeACTrigger:focus, .hordeACTrigger:disabled { background:transparent none repeat scroll 0 0; border:0 none; display:inline; outline: none; position:static; width:80px; font-size: 111%; } .hordeACItemRemove:hover { cursor:pointer; } /* Horde_Mime_Viewer styles. */ .mimeHeaders { border: 1px solid #ccc; background: #f9f9f9; display: inline-block; margin-bottom: 3px; padding: 5px; } /* Context Menus */ .context, .horde-buttonbar li div { min-width: 180px; position: absolute; z-index: 10000; background: #eceff0; border: 1px solid #919293; border-bottom-width: 0; -moz-box-shadow: 3px 3px 3px #888; -webkit-box-shadow: 3px 3px 3px #888; box-shadow: 3px 3px 3px #888; } .context { top: 0; left: 0; } .context a, .context a:visited, .horde-buttonbar li div li a { white-space: nowrap; display: block; height: 19px; border-bottom: 1px solid #919293; padding: 5px 10px 0 10px; text-decoration: none; color: #000; } .context a:hover, .context a.contextSubmenu.contextHover, .horde-buttonbar li div li a:hover { background-color: #c2ccd0 !important; cursor: pointer; text-decoration: none; } .context div.sep { background: #919293; height: 1px !important; padding: 0; margin-top: 1px; } .contextSubmenu { background: url("graphics/popright.png") 100% 50% no-repeat; padding-left: 16px; } .contextSelected { background-color: #36525d !important; color: #fff !important; } a.contextSelected:hover { color: #000 !important; } .contextMenu .iconImg { vertical-align: top; margin: -2px 6px 0 0; } /* Form ghosting. */ .formGhost { color: #a0a0a0 !important; font-style: italic; } /* PHP Shell. */ .gutter { padding-right: 8px; } /* Uploader */ .hordeUploaderHeaderContent { font-size: 18px; background-color: transparent; padding: 5px 10px 10px 10px; color: #000; } .hordeUploaderHeader { background-color: #BFC9CD; } .hordeUploaderFilelistHeader { background: none repeat scroll 0 0 #ebeff0; color: #42454A; padding: 8px; height: 20px; } .hordeUploaderSubHeader { font-size: 12px; } .hordeUploaderFooter { border-top: 1px solid #FFFFFF; height: 22px; line-height: 20px; vertical-align: middle; background: none repeat scroll 0 0 #ebeff0; color: #42454A; padding: 8px; } .hordeUploaderFilelist { height: 350px; overflow: auto; } .hordeUploaderFilelistItem { border-bottom: 1px solid #DDDDDD; padding: 10px 8px; } .hordeUploaderFilelistItemDone { color: #aaaaaa; } .hordeUploaderFilelistItemError { color: red; font-weight: bold; } .hordeUploaderFilename { float: left; width: 200px; } .hordeUploaderFilestatus, .hordeUploaderFilesize, .hordeUploaderFileaction { float: right; text-align: right; } .hordeUploaderFilestatus, .hordeUploaderFilesize { width: 80px; } .hordeUploaderFileaction { width: 20px; line-height: 20px; } .hordeUploaderSuccess { background-image: url("graphics/alerts/success.png"); } .hordeUploaderError { background-image: url("graphics/alerts/error.png"); } .hordeUploaderRemove { background-image: url("graphics/delete.png"); } /* For in place editing */ form.inplaceeditor-form { background: none; } .inplaceeditor-empty { font-style: italic; color: #999; } /* Nav images */ .navfirstgreyImg { background-image: url("graphics/nav/first-grey.png"); } .navfirstImg { background-image: url("graphics/nav/first.png"); } .navlastgreyImg { background-image: url("graphics/nav/last-grey.png"); } .navlastImg { background-image: url("graphics/nav/last.png"); } .navleftgreyImg { background-image: url("graphics/nav/left-grey.png"); } .navleftImg { background-image: url("graphics/nav/left.png"); } .navrightgreyImg { background-image: url("graphics/nav/right-grey.png"); } .navrightImg { background-image: url("graphics/nav/right.png"); } /* Loading image. */ span.loadingImg { background: #fff url("graphics/loading.gif") no-repeat center; border: 1px #e0e0e0 solid; height: 16px; margin: 10px 0 0 10px; padding: 3px; position: absolute; width: 16px; z-index: 1000; } a.icon { display:block; width:100%; height:100%; } /* Topbar. */ a.horde-mainnavi:link, a.horde-mainnavi:visited, a.horde-mainnavi:active { display: block; color: #fff; } .horde-point-center:hover, a.horde-mainnavi:hover, a.horde-mainnavi-active:link, a.horde-mainnavi-active:visited, a.horde-mainnavi-active:active { color: #7eaa42; text-decoration: none; } .horde-dropdown { float: left; list-style: none; padding: 0; margin: 0; z-index: 10; } .horde-dropdown ul { list-style: none; padding: 0; margin: 0; z-index: 10; background-color: #162329; border: 1px solid #090e11; } .horde-dropdown ul li { position: relative; border-bottom: 1px solid #919294; white-space: nowrap; } .horde-dropdown ul li:last-child { position: relative; border-bottom: 0px solid #919294; } .horde-dropdown ul li.arrow { background-image: url("graphics/navi-subnavi.png"); background-repeat: no-repeat; background-position: center right; } .horde-dropdown ul li.arrow:hover { background-image: url("graphics/navi-subnavi-active.png"); background-repeat: no-repeat; background-position: center right; } .horde-dropdown li ul { position: absolute; display: none; top: 34px; margin-left: -10px; } .horde-dropdown ul li ul { margin-top: -25px; margin-left: 100%; top: 24px; } .horde-dropdown li:hover ul, .horde-dropdown li.over ul { display: block; } .horde-dropdown li:hover ul ul, .horde-dropdown li.over ul ul { display: none; } .horde-dropdown ul li:hover ul, .horde-dropdown ul li.over ul { display: block; } .horde-drowdown-str { height: 19px; padding: 5px 15px 0px 0px; margin: 0 0 0 10px; } .horde-drowdown-str:hover a { color: #7eaa42; } #horde-head { width: 100%; height: 34px; background-color: #2e464f; background-image: url("graphics/head-bg.png"); background-repeat: repeat-x; border-bottom: 2px solid #000; } #horde-logo { float: left; width: 88px; height: 34px; background-image: url("graphics/logo.png"); background-repeat: no-repeat; } #horde-version { float: left; height: 16px; padding: 18px 10px 0px 0px; font-size: 90%; font-weight: bold; font-style: italic; color: #fff; text-shadow: 1px 1px 0px #000; } #horde-navigation { float: left; font-size: 110%; color: #fff; font-weight: bold; text-decoration: none; text-shadow: 1px 1px 0px #000; cursor: default; } .horde-navipoint { float: left; } .horde-navipoint:hover .horde-point-arrow { background-image: url("graphics/navi-arrow-active.png"); } .horde-navipoint:hover .horde-point-center a { color: #7eaa42; } .horde-point-left { float: left; width: 10px; height: 34px; } .horde-point-center { float: left; height: 26px; padding: 8px 0px 0px 0px; } .horde-point-arrow, .horde-point-arrow-active { float: right; width: 13px; height: 8px; margin: 5px 2px 0 5px; background-image: url("graphics/navi-arrow-normal.png"); background-repeat: no-repeat; text-indent: -10000px; overflow: hidden; } .horde-point-arrow-active { background-image: url("graphics/navi-arrow-active.png"); } left.horde-point-right { float: left; width: 10px; height: 34px; } .horde-point-left-active { float: left; width: 10px; height: 34px; background-image: url("graphics/navi-left-active.png"); background-repeat: no-repeat; } .horde-point-center-active { float: left; height: 26px; padding: 8px 0 0 0; background-image: url("graphics/navi-center-active.png"); background-repeat: repeat-x; } .horde-point-right-active { float: left; width: 10px; height: 34px; background-image: url("graphics/navi-right-active.png"); background-repeat: no-repeat; } .horde-settings { float: left; width: 22px; height: 27px; margin: 7px 0 0 0; } #horde-search { float: right; width: 230px; padding: 0 20px 0 0; } #horde-search form { display: inline; } #horde-search #horde-search-input, #horde-search .horde-fake-input { width: 200px; margin-top: 6px; background: #fff; height: 20px; font-size: 100%; border: 0; float: left; } #horde-search #horde-search-input { width: 190px; padding: 0 5px 0 5px; } #horde-search .horde-fake-input #horde-search-input { padding: 0 5px 0 0; width: 170px; margin: 0; float: none; } #horde-search span.horde-popdown { cursor: pointer; float: none; height: 20px; margin-top: -2px; width: 16px; } #horde-search-icon { float: left; margin: 7px 0 0 7px; } #horde-logout, #horde-login { float: right; width: 20px; height: 29px; margin: 6px 10px 0 0; background-image: url("graphics/logout.png"); background-repeat: no-repeat; } #horde-login { background-image: url("graphics/login.png"); } .horde-icon-settings { background-image: url("graphics/settings.png"); background-repeat: no-repeat; } .horde-icon-settings:hover { background-image: url("graphics/settings-active.png"); } .horde-icon-settings a { width: 22px; height: 27px; } /* Sub bar. */ #horde-sub { width: 100%; height: 20px; background-color: #333333; } #horde-date { float: left; padding: 2px 0 0 10px; color: #fff; } #horde-info { float: right; padding: 2px 10px 0 0; color: #fff; } #horde-info a { color: #fff; } /* Mainpage */ #horde-page { position: absolute; top: 0; right: 0; bottom: 0; left: 0; padding-left: 8px; } /* Sidebar. */ #horde-sidebar { background-color: #bfc9cd; float: left; margin-left: -100%; padding-bottom: 10px; } .horde-ajax #horde-sidebar { position: absolute; top: 0; bottom: 0; margin-left: 0; } #horde-sidebar a { color: #000; } .horde-new { height: 29px; background-image: url("graphics/sidebar-new-bg.png"); background-repeat: repeat-x; border-bottom: 1px solid #787878; overflow: hidden; font-size: 140%; font-weight: bold; color: #fff; text-shadow: -1px -1px 0px #000; } .horde-portal-new { float: left; border-right: 1px solid #787878; margin-right: 10px; } #horde-sidebar .horde-new-link a, .horde-new-link a { padding-left: 28px; margin: 5px 10px 0 10px; background-image: url("graphics/sidebar-new.png"); background-repeat: no-repeat; background-position: left 1px; color: #fff; display: block; } .horde-new-split { float: right; width: 2px; height: 29px; margin-left: 10px; background-image: url("graphics/sidebar-split.png"); background-repeat: no-repeat; } .horde-new-extra { float: right; width: 20px; height: 24px; margin: 5px 6px 0 7px; background-image: url("graphics/sidebar-refresh.png"); background-repeat: no-repeat; } .horde-new-extra a { display: block; } .horde-new-extra a:hover { text-decoration: none; } #horde-sidebar h3 { min-height: 12px; margin: 0 10px; font-size: 100%; font-weight: bold; cursor: default; } #horde-sidebar a.horde-add { float: right; margin-top: -2px; height: 17px; width: 16px; background: transparent url("graphics/plus-sidebar.png") no-repeat right center; text-indent: -10000px; overflow: hidden; cursor: pointer; } .horde-collapse, .horde-expand { display: block; padding-left: 26px; background-repeat: no-repeat; cursor: pointer; } .horde-collapse { background-image: url("graphics/collapse.png"); background-position: left 2px; } .horde-expand { background-image: url("graphics/expand.png"); background-position: left 1px; } #horde-sidebar div.horde-resources { margin-top: 10px; } #horde-sidebar div.horde-resources div { margin: 5px 0; } .horde-resource-link { overflow: hidden; } .horde-resource-on, .horde-resource-off, .horde-resource-none { display: inline-block; min-height: 15px; padding: 3px 0 3px 36px; cursor: pointer; background-position: 10px 2px; background-repeat: no-repeat; } .horde-resource-on:hover, .horde-resource-off:hover { text-decoration: underline; } .horde-resource-on, .horde-resource-off:hover { background-image: url("graphics/checkbox_on.png"); } .horde-resource-off { background-image: url("graphics/checkbox_off.png"); } .horde-resource-on.horde-radiobox, .horde-resource-off.horde-radiobox:hover { background-image: url("graphics/radiobox_on.png"); } .horde-resource-off.horde-radiobox { background-image: url("graphics/radiobox_off.png"); } #horde-sidebar div.horde-resources .horde-resource-edit-000, #horde-sidebar div.horde-resources .horde-resource-edit-fff { float: right; display: block; background: url("graphics/edit-sidebar-000.png") no-repeat; margin: 2px 10px 0 0; width: 17px; height: 17px; text-indent: -10000px; overflow: hidden; cursor: pointer; } #horde-sidebar div.horde-resources .horde-resource-edit-fff { background-image: url("graphics/edit-sidebar-fff.png"); } #horde-sidebar div.horde-resources div a { color: inherit; } #horde-sidebar .horde-info { font-style: italic; padding: 10px 0 0 36px; } .horde-sidebar-split { border-top: 1px solid #858889; height: 10px; margin: 10px 0 0; } .horde-subnavi { height: 20px; padding: 3px 0 1px; overflow: hidden; -o-text-overflow: ellipsis; text-overflow: ellipsis; white-space: nowrap; } .horde-subnavi-active, .horde-subnavi:hover{ height: 20px; background-image: url("graphics/sidebar-active-bg.png"); background-repeat: repeat-x; } .horde-subnavi-icon { background-color: transparent; background-repeat: no-repeat; background-position: center right; display: inline-block; height: 20px; margin: -1px 8px 0 10px; vertical-align: middle; width: 20px; } .horde-subnavi-point { display: inline; } .horde-popdown { background-image: url("graphics/popdown.png"); background-repeat: no-repeat; background-position: top center; float: right; height: 24px; width: 24px; cursor: pointer; } .horde-subnavi-sub { padding-left: 9px; } /* Slider. */ #horde-slideleft { position: absolute; top: 0; bottom: 0; } .horde-splitbar-vert { width: 8px; background-image: url("graphics/slidevert-bg.png"); background-repeat: repeat-y; } .horde-splitbar-vert.DragElt { cursor: col-resize; } .horde-splitbar-vert-handle { display: none; position: absolute; top: 0; bottom: 0; width: 8px; background-image: url("graphics/slidevert.png"); background-repeat: no-repeat; background-position: center center; } .DragElt .horde-splitbar-vert-handle { display: block; } .horde-splitbar-horiz { height: 8px; background-image: url("graphics/slidehoriz-bg.png"); background-repeat: repeat-x; cursor: row-resize; } .horde-splitbar-horiz-handle { position: absolute; left: 0; right: 0; height: 8px; background-image: url("graphics/slidehoriz.png"); background-repeat: no-repeat; background-position: center center; } /* Buttonbar. */ .horde-buttonbar { min-height: 30px; background-image: url("graphics/buttonbar-bg.png"); background-repeat: repeat; overflow: hidden; } .horde-button-icon { float: left; width: 20px; height: 24px; margin: 5px 5px 0 15px; } .horde-button-left, .horde-button-left-arrow { float: left; height: 22px; margin: 4px 15px 0 15px; } .horde-button-right, .horde-button-right-arrow { float: right; height: 22px; margin: 4px 5px 0 32px; } .horde-buttonbar .disabled { display: none; } .horde-buttonbar, .horde-buttonbar a, .horde-buttonbar a:link, .horde-buttonbar a:visited, .horde-buttonbar a:active { color: #616161; font-weight: bold; text-decoration: none; } .horde-buttonbar .horde-icon { margin-top: 2px; padding-top: 6px; padding-left: 25px; background-position: left center, right center; background-repeat: no-repeat; } .horde-buttonbar .horde-popdown { position: relative; margin: -5px 10px 0 -12px; padding: 0; background-position: center center; } .horde-buttonbar .horde-nobutton .horde-popdown { margin-left: 0; margin-right: 0; } .horde-buttonbar select { margin-left: -4px; background-color: transparent; border-width: 0; color: #616161; font-weight: bold; } .horde-buttonbar ul { list-style: none; } .horde-buttonbar li { float: left; height: 22px; padding-top: 8px; background-image: url("graphics/button-split.png"); background-repeat: no-repeat; background-position: right top; } .horde-buttonbar li.horde-icon { margin: 0; padding: 8px 0 0 0; background-position: right top; } .horde-buttonbar li a, .horde-buttonbar li span, .horde-buttonbar li select { background-repeat: no-repeat; background-position: 10px center; padding: 7px 12px 7px 10px; } .horde-buttonbar li span.accessKey { padding: 0; } .horde-buttonbar li select { margin-top: -7px; cursor: pointer; height: auto; } .horde-buttonbar li option { padding: 0; } .horde-buttonbar li.horde-icon a { padding-left: 35px; } .horde-buttonbar li span.iconImg, .horde-buttonbar li input { margin-top: -3px; } .horde-buttonbar li.horde-nobutton a { padding: 0; } .horde-buttonbar .rightFloat li { background-position: center left; } .horde-buttonbar li:hover, .horde-buttonbar li.horde-active { background-image: url("graphics/button-split.png"), url("graphics/button-active-bg.png"); background-repeat: no-repeat, repeat-x; } .horde-buttonbar .rightFloat li:hover, .horde-buttonbar .rightFloat li.horde-active { background-position: center left, center center; } .horde-buttonbar .horde-hasmenu { padding-right: 24px; background: url("graphics/popdown.png") no-repeat right center; } .horde-buttonbar li div { display: none; } .horde-buttonbar li:hover div { display: block; } .horde-buttonbar li ul li { float: none; background: transparent; height: auto; margin: 0; padding: 0; } .horde-buttonbar li ul li a, .horde-buttonbar li ul li a:link { font-weight: normal; color: #000; } .horde-buttonbar li.horde-nobutton { background-image: none; padding-left: 15px; margin-left: 0; } .horde-buttonbar .rightFloat li.horde-nobutton { margin-right: 5px; } /* Sidebar entries. */ .horde-admin-config { background-image: url("graphics/config.png"); } .horde-admin-user { background-image: url("graphics/user.png"); } .horde-admin-group { background-image: url("graphics/group.png"); } .horde-admin-perms { background-image: url("graphics/perms.png"); } .horde-admin-locked { background-image: url("graphics/locked.png"); } .horde-admin-alarm { background-image: url("graphics/alerts/alarm.png"); } .horde-admin-php { background-image: url("graphics/php.png"); } .horde-admin-sql { background-image: url("graphics/sql.png"); } .horde-admin-shell { background-image: url("graphics/shell.png"); } .horde-admin-mobile { background-image: url("graphics/mobile.png"); } .horde-data { background-image: url("graphics/data.png"); } .horde-perms { background-image: url("graphics/perms.png"); } .horde-search { background-image: url("graphics/search.png"); } #portal { clear: left; } /* Session display. */ .current-sessions { width: 100%; } /* Print CSS. */ @media print { body, .header, .smallheader { background: #fff; color: #000; } a, .signature, .signature .fixed { color: #000; } #horde-head, #horde-sub, #horde-sidebar, #horde-slideleft, .togglequotehide, .togglequoteshow { display: none; } .horde-ajax #horde-body { top: 0; } #horde-page { left: 0 !important; padding-left: 0; } .headerbox { border: none; } .control, .rowEven, .rowOdd { background-color: #fff; border-bottom: thin solid #000; } .selected { background: #ddd; } .quoted1, .quoted2, .quoted3, .quoted4, .quoted5 { color: #000; border-left-color: #000; } #Growler, #GrowlerLog { display: none !important; } } tmpjWNuGb/horde-5.1.5/themes/default/webkit.css0000644000175000017500000000023212233761325021263 0ustar mathieumathieu/** * CSS corrections for Webkit. */ .iconImg, .horde-tree-row img { vertical-align: middle; } #menu { overflow: visible; height: 50px; } tmpjWNuGb/horde-5.1.5/themes/default/ie8.css0000644000175000017500000000165612233761325020476 0ustar mathieumathieu/** * CSS corrections for IE 8. */ input[type="submit"], input[type="button"], input[type="reset"] { padding: 1px 13px 2px; } div.modal-form .submit-button { background-color: #000; width: 100px; } // IE 8 only supports one url argument for background. table.horde-table thead .horde-split-left.sortup, table.horde-table thead .horde-split-right.sortup { background-image: url("graphics/za.png"); } table.horde-table thead .horde-split-left.sortdown, table.horde-table thead .horde-split-right.sortdown { background-image: url("graphics/az.png"); } form[action^="https://"] input[type="submit"].horde-default { background-image: url("graphics/locked-inv.png"); background-position: 95% center; background-repeat: no-repeat; padding-right: 33px; } .horde-buttonbar li:hover, .horde-buttonbar li.horde-active { background-image: url("graphics/button-split.png"); background-repeat: no-repeat; } tmpjWNuGb/horde-5.1.5/themes/default/block/0000755000175000017500000000000012262230550020352 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/themes/default/block/screen.css0000644000175000017500000000236012233761320022346 0ustar mathieumathieu.horde-block-links a, a.horde-block-links { display: block; } #portal .horde-content { padding: 5px; } table.horde-block-weather { border: 1px solid transparent; border-collapse: collapse; width: 100%; } table.horde-block-weather td { border: 1px solid #ddd; text-align: center; } #googlesearch { padding: .3em; } /* Social Media Related CSS */ .hordeSmStreamstory { margin-bottom: 7px; padding-top: 7px; position: relative; } .hordeSmStreambody { min-height: 70px; } .hordeSmStreamMessage { margin-top: 7px; margin-left: 78px; overflow: auto; } .hordeSmStreaminfo { color: #777777; padding: 2px 0 0; font-style: italic; font-size: 90%; margin-left: 78px; } .hordeSmStreaminfo p { display: inline; } .hordeSmGetmore { text-align: center; } .hordeSmCurrent { font-style: italic; color: gray; } .hordeSmAvatar { float: left; text-align: center; height: 73px; width: 73px; margin-right: 5px; padding-top: 5px; } .hordeSmNew { color: red; } .hordeSmPreview { text-align: center; position: absolute; z-index: 10000; } .hordeSmOverlay { position: absolute; opacity: 0.8; z-index: 9000; background-color: #000000; } tmpjWNuGb/horde-5.1.5/themes/default/mozilla.css0000644000175000017500000000025512233761325021452 0ustar mathieumathieu/** * CSS corrections for Gecko. */ input[type="submit"], input[type="button"], input[type="reset"] { padding: 3px 10px; } input.horde-cancel { padding: 3px 0; } tmpjWNuGb/horde-5.1.5/themes/default/facebook.css0000644000175000017500000000153712233761325021560 0ustar mathieumathieu/* Facebook Box Styles */ .fbinfobox { background-color: #fff9d7; border: 1px solid #e2c822; color: #333333; padding: 10px; font-size: 13px; font-weight: bold; } /* Content Divider on White Background */ .fbcontentdivider { margin-top: 2px; margin-bottom: 2px; margin-right: 4px; margin-left: 4px; height: 1px; background-color: #d8dfea; } /* Stream CSS */ .fbattachment { margin: 6px 6px 0 0; overflow: hidden; padding: 4px; } .fbattachmenttitle { font-weight: bold; } .fbattachmentcaption, .fbattachmentcopy{ color: gray; padding-top: 3px; } .fbmedia { float: left; overflow: hidden; } .fbmediaitem { float: left; } .fbmediaitem img { display: block; vertical-align: middle; max-height: 200px; max-width: 130px; } .fbmediaitemsingle { padding-right:5px; } tmpjWNuGb/horde-5.1.5/themes/default/opera.css0000644000175000017500000000023012233761325021102 0ustar mathieumathieu/** * CSS corrections for Opera. */ .horde-tree-row { overflow: visible; height: 20px; } #menu { overflow: visible; height: 50px; } tmpjWNuGb/horde-5.1.5/themes/default/smartmobile/0000755000175000017500000000000012262230550021576 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/themes/default/smartmobile/screen.css0000644000175000017500000000430212233761325023575 0ustar mathieumathieu.ui-bar .ui-title { /* copy of .ui-header .ui-title */ min-height: 1.1em; text-align: center; font-size: 16px; margin: 0 20px 0.2em; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } .center { text-align: center; } pre, code, .fixed, table.lineNumbered * { font-family: Menlo,Consolas,"Lucida Console","DejaVu Sans Mono",monospace; } /* Login page. */ #login div[data-role="content"] { max-width: 480px; margin: 0 auto; } /* Login tasks. */ .horde-logintasks-buttons .ui-btn-inner { white-space: normal; } /* Styles for email-like messages. */ .signature { color: #ccc; } .signature .fixed { color: #ccc; } .citation { margin: 1em 0; padding-left: 1em; border-left-width: 1px; border-left-style: solid; min-height: 1em; } .quoted1 { color: #606; border-color: #606; } .quoted2 { color: #077; border-color: #077; } .quoted3 { color: #900; border-color: #900; } .quoted4 { color: #009; border-color: #009; } .quoted5 { color: #b60; border-color: #b60; } /* Notification styles. */ #horde-notification { bottom: 0; left: 10%; position: fixed; width: 80%; z-index: 2000; } #horde-notification div { background-position: 3px center; background-repeat: no-repeat; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; border-style: solid; border-width: 1px; color: #fff; cursor: pointer; font-family: Helvetica, Arial, sans-serif; margin: 5px; padding: 5px 5px 5px 25px; text-align: left; text-shadow: none; } .horde-error { background-color: #e81222 !important; background-image: url("../graphics/alerts/error.png") !important; } .horde-message { background-color: #369 !important; background-image: url("../graphics/alerts/message.png") !important; } .horde-success { background-color: #5db110 !important; background-image: url("../graphics/alerts/success.png") !important; } .horde-warning { background-color: #ebe20c !important; background-image: url("../graphics/alerts/warning.png") !important; color: #444 !important; text-shadow: 0 1px 1px #f6f6f6 !important; } tmpjWNuGb/horde-5.1.5/themes/default/feed-rss.xsl0000644000175000017500000000453412233761325021535 0ustar mathieumathieu <xsl:value-of select="/rss/channel/title"/>

      You're viewing an XML content feed which is intended to be viewed within a feed aggregator.

      Subscribe to

      Subscribe now in your favorite RSS aggregator:

      Preview


      tmpjWNuGb/horde-5.1.5/themes/default/embed.css0000644000175000017500000000065412233761325021062 0ustar mathieumathieudiv.nicetitle { color: #000; padding: 5px; z-index: 1001; position: absolute; overflow: hidden; background: #eceff0; border: 1px solid #919293; -moz-box-shadow: 3px 3px 3px #888; -webkit-box-shadow: 3px 3px 3px #888; box-shadow: 3px 3px 3px #888; } div.nicetitle pre { text-align: left; font-size: 75%; font-family: Consolas,"Lucida Console", "DejaVu Sans Mono",monospace; } tmpjWNuGb/horde-5.1.5/js/0000755000175000017500000000000012262230550014763 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/js/stripe.js0000644000175000017500000000250312233761316016636 0ustar mathieumathieu/** * Javascript code for finding all tables with classname "striped" and * dynamically striping their row colors. * * @author Chuck Hagenbuch * @author Matt Warden * * See the enclosed file COPYING for license information (LGPL-2). If you * did not receive this file, see http://www.horde.org/licenses/lgpl. */ window.Horde = window.Horde || {}; Horde.stripeAllElements = function() { $$('.striped').each(this.stripeElement.bind(this)); }; Horde.stripeElement = function(elt) { var classes = [ 'rowEven', 'rowOdd' ], e = $(elt).childElements(), i = 0; if (elt.tagName == 'TABLE') { // Tables can have more than one tbody element; get all child // tbody tags and interate through them. e.each(function(child) { child.childElements().each(function(c) { c.removeClassName(classes[i % 2]).addClassName(classes[++i % 2]); }); }); } else { // Toggle the classname of any child node that is an element. e.each(function(c) { c.removeClassName(classes[i % 2]).addClassName(classes[++i % 2]); }); } }; /* We have to wait for the full DOM to be loaded to ensure we don't * miss anything. */ document.observe('dom:loaded', Horde.stripeAllElements.bind(Horde)); tmpjWNuGb/horde-5.1.5/js/userupdate.js0000644000175000017500000000121712233761316017512 0ustar mathieumathieu/** * Provides the javascript for the admin user update page. * * See the enclosed file COPYING for license information (LGPL-2). If you * did not receive this file, see http://www.horde.org/licenses/lgpl. */ var HordeAdminUserUpdate = { // Set in admin/user.php: pass_error onSubmit: function(e) { if ($('user_pass_1') && $F('user_pass_1') != $F('user_pass_2')) { $('user_pass_1', 'user_pass_2').invoke('setValue', ''); window.alert(this.pass_error); e.stop(); } } }; document.on('submit', '#updateuser', HordeAdminUserUpdate.onSubmit.bind(HordeAdminUserUpdate)); tmpjWNuGb/horde-5.1.5/js/activesyncprefs.js0000644000175000017500000000237612233761316020550 0ustar mathieumathieu/** * Provides the javascript for managing ActiveSync partner devices. * * See the enclosed file COPYING for license information (LGPL-2). If you * did not receive this file, see http://www.horde.org/licenses/lgpl. */ var HordeActiveSyncPrefs = { // Set in lib/Prefs/Ui.php: devices clickHandler: function(e) { var id = e.element().readAttribute('id'); if (id.startsWith('wipe_')) { $('wipeid').setValue(this.devices[id.substr(5)].id); $('actionID').setValue('update_special'); $('prefs').submit(); e.stop(); } else if (id.startsWith('cancel_')) { $('cancelwipe').setValue(this.devices[id.substr(7)].id); $('actionID').setValue('update_special'); $('prefs').submit(); e.stop(); } else if (id.startsWith('remove_')) { $('removedevice').setValue(this.devices[id.substr(7)].id); $('actionID').setValue('update_special'); $('prefs').submit(); e.stop(); } }, onDomLoad: function() { $('prefs').observe('click', this.clickHandler.bindAsEventListener(this)); } }; document.observe('dom:loaded', HordeActiveSyncPrefs.onDomLoad.bind(HordeActiveSyncPrefs)); tmpjWNuGb/horde-5.1.5/js/login.js0000644000175000017500000000512212233761316016440 0ustar mathieumathieu/** * Provides the javascript for the login.php script. * * See the enclosed file COPYING for license information (GPL). If you * did not receive this file, see http://www.horde.org/licenses/gpl. */ var HordeLogin = { // Variables set by outside code: user_error, pass_error submit: function() { if ($('horde_user') && !$F('horde_user')) { alert(HordeLogin.user_error); $('horde_user').focus(); } else if ($('horde_pass') && !$F('horde_pass')) { alert(HordeLogin.pass_error); $('horde_pass').focus(); } else { $('login-button').disable(); $('login_post').setValue(1); $('horde_login').submit(); } }, selectLang: function() { // We need to reload the login page here, but only if the user hasn't // already entered a username and password. if ((!$('horde_user') || !$F('horde_user')) && (!$('horde_pass') || !$F('horde_pass'))) { var params = { new_lang: $F('new_lang') }; self.location = 'login.php?' + Object.toQueryString(params); } }, loginButton: function(e) { if (e.isRightClick()) { return; } if (!e.element().readAttribute('disabled')) { this.submit(); } e.stop(); }, /* Removes any leading hash that might be on a location string. */ _removeHash: function(h) { return (Object.isString(h) && h.startsWith("#")) ? h.substring(1) : h; }, onDomLoad: function() { var s = $('horde_select_view'); // Need to capture hash information if it exists in URL if (location.hash) { $('anchor_string').setValue(this._removeHash(location.hash)); } if ($('horde_user') && !$F('horde_user')) { $('horde_user').focus(); } else if ($('horde_pass') && !$F('horde_pass')) { $('horde_pass').focus(); } else { $('login-button').focus(); } /* Programatically activate views that require javascript. */ if (s) { s.down('option[value=mobile_nojs]').remove(); if (this.pre_sel) { s.selectedIndex = s.down('option[value=' + this.pre_sel + ']').index; } $('horde_select_view_div').show(); } } }; document.observe('dom:loaded', HordeLogin.onDomLoad.bind(HordeLogin)); document.on('change', '#new_lang', HordeLogin.selectLang.bind(HordeLogin)); document.on('click', '#login-button', HordeLogin.loginButton.bind(HordeLogin)); tmpjWNuGb/horde-5.1.5/js/smartmobile-login.js0000644000175000017500000000223312233761316020754 0ustar mathieumathieu/** * Provides the javascript for the smartmobile login script. * * See the enclosed file COPYING for license information (GPL). If you * did not receive this file, see http://www.horde.org/licenses/gpl. */ $(document).bind("pageinit", function() { $("#login form").on('submit', function() { if ($("#horde_user").val() == "") { window.alert(HordeLogin.user_error); $("#horde_user").focus(); } else if ($("#horde_pass").val() == "") { window.alert(HordeLogin.pass_error); $("#horde_pass").focus(); } else { $("#horde-login-post").val(1); $(this).find('input[type="submit"]').button('disable'); $.mobile.showPageLoadingMsg(); } }); /* Programatically activate views that require javascript. */ var s = $('#horde_select_view'); if (s) { s.find('option[value=mobile_nojs]').remove(); if (HordeLogin.pre_sel) { s.get(0).selectedIndex = s.find('option[value=' + HordeLogin.pre_sel + ']').index; } s.selectmenu('refresh'); $('#horde_select_view_div').show(); } }); var HordeLogin = {}; tmpjWNuGb/horde-5.1.5/js/form_sections.js0000644000175000017500000000355412233761316020211 0ustar mathieumathieu/** * Horde Form Sections Javascript Class * * Provides the javascript class for handling tabbed sections in Horde Forms. * * Copyright 2003-2013 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL-2). If you * did not receive this file, see http://www.horde.org/licenses/lgpl. * * @author Marko Djukic * @package Horde_Form */ function Horde_Form_Sections(instanceName, openSection) { /* Set up this class instance for function calls from the page. */ this._instanceName = instanceName; /* The currently showed section. */ var _openSection, s; this.toggle = function(sectionId) { if (!document.getElementById) { return false; } /* Get the currently open section object. */ openSectionId = this._get(); s = document.getElementById(this._instanceName + '_section_' + openSectionId); if (s) { s.style.display = 'none'; document.getElementById(this._instanceName + '_tab_' + openSectionId).className = null; } /* Get the newly opened section object. */ s = document.getElementById(this._instanceName + '_section_' + sectionId); if (s) { s.style.display = ''; document.getElementById(this._instanceName + '_tab_' + sectionId).className = 'horde-active'; } /* Store the newly opened section. */ this._set(sectionId); }; this._get = function() { return this._openSection; }; this._set = function(sectionId) { var form = document.getElementById(this._instanceName); if (form !== null && typeof form.__formOpenSection != 'undefined') { form.__formOpenSection.value = sectionId; } this._openSection = sectionId; }; this._set(openSection); } tmpjWNuGb/horde-5.1.5/js/vatid.js0000644000175000017500000000136212233761316016441 0ustar mathieumathieu/** * Javascript for the Vatid block. * * See the enclosed file COPYING for license information (LGPL-2). If you * did not receive this file, see http://www.horde.org/licenses/lgpl. */ var HordeBlockVatid = { onSubmit: function(e) { var elt = e.element(); elt.down('IMG').show(); elt.request({ onFailure: this.onFailure.bind(this, e), onSuccess: this.onSuccess.bind(this, e) }); e.stop(); }, onFailure: function(e, r) { e.element().down('IMG').hide(); }, onSuccess: function(e, r) { var elt = e.element(); elt.down('DIV.vatidResults').update(r.responseJSON.response).scrollTo(); elt.down('IMG').hide(); } }; tmpjWNuGb/horde-5.1.5/js/activesyncadmin.js0000644000175000017500000000316512233761316020516 0ustar mathieumathieu/** * Provides the javascript for administering ActiveSync partner devices. * * See the enclosed file COPYING for license information (LGPL-2). If you * did not receive this file, see http://www.horde.org/licenses/lgpl. */ var HordeActiveSyncAdmin = { // Set in admin/activesync.php: devices clickHandler: function(e) { var id = e.element().readAttribute('id'); switch (id) { case 'reset': $('actionID').setValue('reset'); $('activesyncadmin').submit(); e.stop(); break; default: if (id.startsWith('wipe_')) { $('deviceID').setValue(this.devices[id.substr(5)].id); $('actionID').setValue('wipe'); $('activesyncadmin').submit(); e.stop(); } else if (id.startsWith('cancel_')) { $('deviceID').setValue(this.devices[id.substr(7)].id); $('actionID').setValue('cancelwipe'); $('activesyncadmin').submit(); e.stop(); } else if (id.startsWith('remove_')) { $('deviceID').setValue(this.devices[id.substr(7)].id); $('actionID').setValue('delete'); $('uid').setValue(this.devices[id.substr(7)].user); $('activesyncadmin').submit(); e.stop(); } break; } }, onDomLoad: function() { $('activesyncadmin').observe('click', this.clickHandler.bindAsEventListener(this)); } }; document.observe('dom:loaded', HordeActiveSyncAdmin.onDomLoad.bind(HordeActiveSyncAdmin)); tmpjWNuGb/horde-5.1.5/js/logintasks-jquery.js0000644000175000017500000000157412233761316021032 0ustar mathieumathieu/** * Provides the javascript for the logintasks confirmation page. * * See the enclosed file COPYING for license information (LGPL-2). If you * did not receive this file, see http://www.horde.org/licenses/lgpl. */ $(document).on('click', function(e) { var elt = $(e.target); while (elt && elt.parent().length) { switch (elt.attr('id')) { case 'logintasks_skip': $('#logintasks_confirm input[type="checkbox"]').each(function() { $(this).prop('checked', false).checkboxradio('refresh'); }); break; } elt = elt.parent(); } }); $(document).bind("pageinit", function() { $("#logintasks form").on('submit', function() { $(this).find('button[type="submit"]').button('disable'); $.mobile.showPageLoadingMsg(); }); }); $(function() { $('#logintasks_skip').show(); }); tmpjWNuGb/horde-5.1.5/js/topbar.js0000644000175000017500000000753112233761316016625 0ustar mathieumathieu/** * Scripts for the Horde topbar. */ var HordeTopbar = { // Vars used and defaulting to null/false: // conf, searchGhost /** * Updates the date in the sub bar. */ updateDate: function() { var d = $('horde-sub-date'); if (d) { d.update(Date.today().toString(this.conf.format)); this.updateDate.bind(this).delay(10); } }, refreshTopbar: function() { HordeCore.doAction('topbarUpdate', { app: this.conf.app, hash: this.conf.hash }, { callback: this.onUpdateTopbar.bind(this), uri: this.conf.URI_AJAX }); }, onUpdateTopbar: function(r) { if (this.conf.hash != r.hash) { $('horde-navigation').update(); this._renderTree(r.nodes, r.root_nodes); this.conf.hash = r.hash; } }, _renderTree: function(nodes, root_nodes) { root_nodes.each(function(root_node) { var elm, item, active = nodes[root_node].active ? '-active' : '', container = new Element('DIV', { className: nodes[root_node]['class'] }); elm = new Element('A', { className: 'horde-mainnavi' + active, href: nodes[root_node].url ? nodes[root_node].url : '#' }); if (nodes[root_node].onclick) { elm.writeAttribute('onclick', nodes[root_node].onclick); } container.insert(elm); item = new Element('LI').insert(container); if (nodes[root_node].children) { if (!nodes[root_node].noarrow) { elm.insert(new Element('SPAN', { className: 'horde-point-arrow' + active }) .insert('▾')); } item.insert(this._renderBranch(nodes, nodes[root_node].children)); } elm.insert(nodes[root_node].label.escapeHTML()); $('horde-navigation') .insert(new Element('DIV', { className: 'horde-navipoint' }) .insert(new Element('DIV', { className: 'horde-point-left' + active })) .insert(new Element('UL', { className: 'horde-dropdown' }) .insert(item)) .insert(new Element('DIV', { className: 'horde-point-right' + active }))); }, this); }, _renderBranch: function(nodes, children) { var list = new Element('UL'); children.each(function(child) { var container, elm, item, attr = nodes[child].children ? { className: 'arrow' } : undefined; container = new Element('DIV', { className: 'horde-drowdown-str' }); if (nodes[child].url) { elm = new Element('A', { className: 'horde-mainnavi', href: nodes[child].url }); if (nodes[child].onclick) { elm.writeAttribute('onclick', nodes[child].onclick); } container.insert(elm); } else { elm = container; } elm.insert(nodes[child].label.escapeHTML()); item = new Element('LI', attr).insert(container); if (nodes[child].children) { item.insert(this._renderBranch(nodes, nodes[child].children)); } list.insert(item); }, this); return list; }, onDomLoad: function() { if ($('horde-search-input')) { this.searchGhost = new FormGhost('horde-search-input'); } this.updateDate(); if (this.conf.refresh) { new PeriodicalExecuter(this.refreshTopbar.bind(this), this.conf.refresh); } } }; document.observe('dom:loaded', HordeTopbar.onDomLoad.bind(HordeTopbar)); tmpjWNuGb/horde-5.1.5/js/slider2.js0000644000175000017500000001666312233761316016710 0ustar mathieumathieu/** * Slider2.js - A minimalist library to create a slider that acts like a * browser's native scrollbar. * * Requires prototype.js v1.6.0.2+ * * * Usage: * ------ * slider = new Slider2(track, { options }); * track: (element|string) TODO * options: (object) [buttonClass, cursorClass, pagesize, totalsize] * * Custom Events: * -------------- * Custom events are triggered on the track element. * * Slider2:change * Fired when slidebar is released and has moved from the original value. * * Slider2:end * Fired when slidebar is released. * * Slider2:slide * Fired when slidebar is moved. * * Slider2:start * Fired when slidebar is clicked on. * * * Adapted from script.aculo.us slider.js v1.8.0 * (c) 2005-2007 Marty Haught, Thomas Fuchs * http://script.aculo.us/ * * The original script was freely distributable under the terms of an * MIT-style license. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * * Copyright 2007-2013 Horde LLC (http://www.horde.org/) * * @author Michael Slusarz */ var Slider2 = Class.create({ initialize: function(track, options) { this.track = $(track); this.options = Object.extend({ buttonclass: null, cursorclass: null, pagesize: 0, totalsize: 0 }, options || {}); this.handle = new Element('DIV', { className: this.options.cursorclass }).makePositioned(); this.track.insert(this.handle); if (this.options.buttonclass) { this.sbup = new Element('DIV', { className: this.options.buttonclass.up }); this.sbdown = new Element('DIV', { className: this.options.buttonclass.down }).makePositioned(); this.handle.insert({ before: this.sbup, after: this.sbdown }); } if (Prototype.Browser.IE) { [ this.track, this.sbup ].compact().invoke('makePositioned'); } this.value = 0; this.active = this.dragging = false; if (this.needScroll()) { this._initScroll(); } this.track.observe('mousedown', this._mousedownHandler.bindAsEventListener(this)); document.observe('mouseup', this._endDrag.bindAsEventListener(this)); document.observe('mousemove', this._update.bindAsEventListener(this)); }, _initScroll: function() { if (!this.init) { this.init = true; this.track.show(); this._updateHandleLength(); } }, _mousedownHandler: function(e) { var dir, elt = e.element(); if (!e.isLeftClick()) { e.stop(); return; } switch (elt) { case this.handle: this.curroffsets = this.track.cumulativeOffset(); this.offsetY = e.pointerY() - this.handle.cumulativeOffset()[1] + this.sbup.offsetHeight; this.active = true; this.track.fire('Slider2:start'); e.stop(); break; case this.sbdown: this.setScrollPosition(this.getValue() + 1); break; case this.sbup: this.setScrollPosition(this.getValue() - 1); break; case this.track: dir = (e.pointerY() < this.handle.cumulativeOffset()[1]) ? -1 : 1; this.setScrollPosition(this.getValue() - dir + (this.options.pagesize * dir)); e.stop(); break; } }, _update: function(e) { if (this.active) { this.dragging = true; this._setScrollPosition('px', Math.min(Math.max(0, e.pointerY() - this.offsetY - this.curroffsets[1]), this.handletop)); this.track.fire('Slider2:slide'); if (Prototype.Browser.WebKit) { window.scrollBy(0,0); } e.stop(); } }, _endDrag: function(e) { if (this.active) { if (this.dragging) { this._updateFinished(); e.stop(); } this.track.fire('Slider2:end'); } this.active = this.dragging = false; }, _updateFinished: function() { this.track.fire('Slider2:change'); }, setHandleLength: function(pagesize, totalsize) { this.options.pagesize = pagesize; this.options.totalsize = totalsize; }, updateHandleLength: function() { if (!this.needScroll()) { this.value = 0; this.track.hide(); } else { this.track.show(); this._updateHandleLength(); } }, _updateHandleLength: function() { var t = this.track.offsetHeight - this.sbup.offsetHeight - this.sbdown.offsetHeight; // Minimum handle size = 10px this.handle.setStyle({ height: Math.max(10, Math.round((this.options.pagesize / this.options.totalsize) * t)) + 'px' }); this.handletop = t - this.handle.offsetHeight; if (this.sbdown) { this.sbdown.setStyle({ top: this.handletop + 'px' }); } this._setScrollPosition('val', this.getValue()); }, getValue: function() { return this.value; }, setScrollPosition: function(val) { var oldval = this.getValue(); this._setScrollPosition('val', val); if (oldval != this.getValue()) { this._updateFinished(); } }, _setScrollPosition: function(type, data) { this.value = (type == 'val') ? Math.min(Math.max(0, data), Math.max(0, this.options.totalsize - this.options.pagesize)) : Math.max(0, Math.round(Math.min(data, this.handletop) / this.handletop * (this.options.totalsize - this.options.pagesize))); if (type == 'px') { this.handlevalue = data; } else { this.handlevalue = Math.round(this.value / (this.options.totalsize - this.options.pagesize) * this.handletop); /* Always make sure there is at least 1 pixel if we are not at the * absolute bottom or top. */ if (isNaN(this.handlevalue)) { this.handlevalue = 0; } else if (this.handlevalue === 0 && this.value !== 0) { this.handlevalue += 1; } else if (this.handlevalue == this.handletop && ((this.options.totalsize - this.options.pagesize) != this.value)) { this.handlevalue -= 1; } } this.handle.setStyle({ top: this.handlevalue + 'px' }); }, needScroll: function() { return (this.options.pagesize < this.options.totalsize); } }); tmpjWNuGb/horde-5.1.5/js/dragdrop2.js0000644000175000017500000005371112233761316017223 0ustar mathieumathieu/** * dragdrop.js - A minimalist library to handle drag/drop actions. * Requires prototype.js 1.6.0.2+ * * Adapted from SkyByte.js/SkyByteDD.js v1.0-beta, May 17 2007 * (c) 2007 Aleksandras Ilarionovas (Alex) * http://www.skybyte.net/scripts/ * * Scrolling and ghosting code adapted from script.aculo.us dragdrop.js v1.8.0 * (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) * (c) 2005-2007 Sammi Williams (http://www.oriontransfer.co.nz, sammi@oriontransfer.co.nz) * * The original scripts were freely distributable under the terms of an * MIT-style license. * * Usage: * ------ * new Drag(element, { * // Either string or function to set caption on mouse move. * caption: '', * * // Class name of the drag element. * classname: 'drag', * * // Constrain movement to 'horizontal' or 'vertical'. * constraint: '', * * // Show ghost outline when dragging. * ghosting: false, * * // Don't do drop checking. Optimizes movement speed. * nodrop: false, * * // An offset to apply to ghosted elements. Coordinates are the position * // to display the element as measured from the upper-left corner of * // the ghosted element. By default, the ghosted element is cloned under * // the cursor. * offset: { x:0, y:0 }, * * // Allow right click to trigger drag behavior. * rightclick: false, * * // Scroll this element when above/below (only for vertical elements). * scroll: element, * * // If ghosting, specifies the coords at which the ghosted image will * // "snap" into place. * snap: null, * * // Keep image snapped inside the parent element. If true, uses * // the parent element. If a function, uses return from function as the * // parent element. * snapToParent: false * * // Move threshold. * threshold: 0 * }); * * Events fired for Drags: * ----------------------- * Custom events are triggered on the drag element. The 'memo' property of * the Event object contains the original event object. * * 'DragDrop2:drag' * Fired on mousemove. * * 'DragDrop2:end' * Fired when dragging ends. * * 'DragDrop2:mousedown' * Fired on mousedown. * * 'DragDrop2:mouseup' * Fored on mouseup *if* the element was not dragged. * * 'DragDrop2:start' * Fired when first moved more than 'threshold'. * * * new Drop(element, { * // Accept filter by tag name(s) or leave empty to accept all tags. * accept: [], * * // Either string or function to set caption on mouseover. * caption: '', * * // Change the drag element to this class when hovering over an element. * hoverclass: 'dragdrop', * * // If true, will re-render caption if a keypress is detected while a * // drop is active (useful for CTRL/SHIFT combo actions). * keypress: false * }); * * Events fired for Drops: * ----------------------- * Custom events are triggered on the drop element. The 'memo' property of * the Event object contains the Drag object. The dragged element is available * in 'memo.element'. The browser event that triggered the custom event is * available in 'memo.dragevent'. * * 'DragDrop2:drop' * Fired when mouse button released (a/k/a a drop event). * * 'DragDrop2:out' * Fired when mouse leaves the drop zone. * * 'DragDrop2:over' * Fired when mouse over drop zone. * * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * * Copyright 2008-2013 Horde LLC (http://www.horde.org/) * * @author Michael Slusarz * @package Horde */ var DragDrop = { Drags: { drags: $H(), register: function(obj) { var func; if (!this.div) { /* Once-only initialization. */ this.div = new Element('DIV', { className: obj.options.classname }).setStyle({ position: 'absolute' }).hide(); $(document.body).insert(this.div); func = this._mouseHandler.bindAsEventListener(this); document.observe('mousedown', func); document.observe('mousemove', func); document.observe('mouseup', func); document.observe('keydown', func); document.observe('keyup', func); if (Prototype.Browser.IE) { document.observe('selectstart', func); } } this.drags.set(obj.element.identify(), obj); obj.element.addClassName('DragElt'); }, unregister: function(obj) { if (this.drag == obj.element) { this.drag.deactivate(); } this.drags.unset(obj.element.identify()); obj.element.removeClassName('DragElt'); }, getDrag: function(el) { return this.drags.get(Object.isElement(el) ? $(el).identify() : el); }, activate: function(drag) { if (this.drag) { this.deactivate(); } this.drag = drag; }, deactivate: function() { this.drag = DragDrop.Drops.drop = null; }, _mouseHandler: function(e) { var elt; switch (e.type) { case 'keydown': case 'keyup': if (this.drag) { this.drag._keyPress(e); } break; case 'mousedown': if (this.drags.size() && (elt = e.findElement('.DragElt'))) { this.getDrag(elt).mouseDown(e); } break; case 'mousemove': if (this.drag) { this.drag._mouseMove(e); } break; case 'mouseup': if (this.drag) { this.drag._mouseUp(e); } break; case 'selectstart': if (this.drag) { e.stop(); } break; } } }, Drops: { drops: $H(), register: function(obj) { this.drops.set(obj.element.identify(), obj); obj.element.addClassName('DropElt'); }, unregister: function(obj) { if (this.drop == obj.element) { this.drop = null; } this.drops.unset(obj.element.identify()); obj.element.removeClassName('DropElt'); }, getDrop: function(el) { return this.drops.get(Object.isElement(el) ? $(el).identify() : el); } }, validDrop: function(el) { var d = DragDrop.Drops.drop; return (d && el && el != d.element && (!d.options.accept.size() || d.options.accept.include(el.tagName))); } }; Drag = Class.create({ initialize: function(el) { this.dragevent = null; this.element = $(el); this.options = Object.extend({ caption: '', classname: 'drag', constraint: null, ghosting: false, nodrop: false, rightclick: false, scroll: null, snap: null, snapToParent: false, threshold: 0 }, arguments[1] || {}); if (this.options.scroll) { this.options.scroll = $(this.options.scroll); } DragDrop.Drags.register(this); // Disable text selection. // See: http://ajaxcookbook.org/disable-text-selection/ // Stopping the event on mousedown works on all browsers, but avoid // that if possible because it will prevent any event handlers further // up the DOM tree from firing. if (Prototype.Browser.Gecko) { this.element.setStyle({ MozUserSelect: 'none' }); } }, destroy: function() { DragDrop.Drags.unregister(this); }, mouseDown: function(e) { if (!this.options.rightclick && e.isRightClick()) { return; } DragDrop.Drags.activate(this); this.move = 0; this.wasDragged = false; this.wasMoved = false; this.lastcaption = this.lastelt = null; this.clickEvent = e; this.element.fire('DragDrop2:mousedown', Object.clone(e)); if (this.options.ghosting || this.options.caption) { if (!DragDrop.Drags.cover) { DragDrop.Drags.cover = new Element('DIV', { id: 'dragdrop2Cover' }); $(document.body).insert(DragDrop.Drags.cover); DragDrop.Drags.cover.insert(new Element('DIV').setStyle({ position: 'absolute' }).hide()); } $$('IFRAME').each(function(i) { var z; if (i.visible()) { z = parseInt(i.getStyle('zIndex'), 10); if (isNaN(z)) { z = 2; } DragDrop.Drags.cover.insert(DragDrop.Drags.cover.down().clone(false).setStyle({ zIndex: z }).clonePosition(i).show()); } }, this); } // Stop event to prevent text selection. Gecko is handled in // initialize(); IE is handled by DragDrop selectstart event handler. if (!Prototype.Browser.IE && !Prototype.Browser.Gecko) { e.stop(); } }, _mouseMove: function(e) { var elt, layout, xy, z; if (++this.move <= this.options.threshold) { return; } else if (!this.wasMoved) { this.element.fire('DragDrop2:start', Object.clone(this.clickEvent)); this.wasMoved = true; } this.lastCoord = xy = [ e.pointerX(), e.pointerY() ]; if (!this.options.caption) { if (!this.ghost) { // Use the position of the original click event as the start // coordinate. xy = [ this.clickEvent.pointerX(), this.clickEvent.pointerY() ]; // Create the "ghost", i.e. the moving element, a clone of the // original element, if it doesn't exist yet. elt = $(this.element.clone(true)) .writeAttribute('id', null) .addClassName(this.options.classname); if (this.options.ghosting) { z = parseInt(this.element.getStyle('zIndex'), 10); if (isNaN(z)) { z = 1; } elt.setOpacity(0.7).setStyle({ zIndex: z + 1 }); } else { this.element.setStyle({ visibility: 'hidden' }); } $(document.body).insert(elt); elt.clonePosition(this.element, { setWidth: false }); layout = elt.getLayout(); elt.setStyle({ position: 'absolute', width: (this.element.getWidth() - (layout.get('margin-box-width') - layout.get('width'))) + 'px' }); this.ghost = this._prepareHover(elt, xy[0], xy[1], 'ghost'); } this._position(this.ghost, xy[0], xy[1]); } if (!this.options.nodrop) { this._onMoveDrag(xy, e); } this.wasDragged = true; this.element.fire('DragDrop2:drag', Object.clone(e)); if (this.options.scroll) { this._onMoveScroll(); } }, _prepareHover: function(elt, x, y, type) { var boundary, dim, noupdate, vo; if (this.options.snapToParent) { boundary = Object.isFunction(this.options.snapToParent) ? this.options.snapToParent() : this.element.parentNode; vo = boundary.viewportOffset(); } else { boundary = document.viewport; vo = [ 0, 0 ]; } if (this.options.offset) { pos = [ x + this.options.offset.x, y + this.options.offset.y ]; } else { switch (type) { case 'caption': pos = [ x + 15, y ]; break; case 'ghost': pos = elt.viewportOffset(); noupdate = true; break; } } if (this.ghost && type == 'caption') { pos[1] += this.ghost.height + 5; } if (!noupdate) { elt.setStyle({ left: pos[0] + 'px', top: pos[1] + 'px' }); } dim = boundary.getDimensions(); layout = elt.getLayout(); return { elt: elt, x_left: vo[0], x_right: vo[0] + dim.width, y_top: vo[1], y_bottom: vo[1] + dim.height, xy_left: x - pos[0], xy_top: y - pos[1], width: layout.get('margin-box-width'), height: layout.get('margin-box-height') }; }, _mouseUp: function(e) { var d = DragDrop.Drops.drop, tmp; this._stopScrolling(); if (this.ghost) { if (!this.options.ghosting) { this.element.setStyle({ visibility: 'visible' }); } try { this.ghost.elt.remove(); } catch (ex) {} this.ghost = null; } DragDrop.Drags.div.hide(); if (DragDrop.validDrop(this.element)) { this.dragevent = e; d.element.fire('DragDrop2:drop', this); } DragDrop.Drags.deactivate(); if ((this.options.ghosting || this.options.caption) && DragDrop.Drags.cover) { DragDrop.Drags.cover.down().siblings().invoke('remove'); } if (!this.element.parentNode) { tmp = new Element('DIV').insert(this.element); } this.element.fire(this.wasMoved ? 'DragDrop2:end' : 'DragDrop2:mouseup', Object.clone(e)); this.wasMoved = false; tmp = null; }, _onMoveDrag: function(xy, e) { var d = DragDrop.Drops.drop, div = DragDrop.Drags.div, d_update = true, elt = this._findElement(e); /* elt will be null if we drag off the browser window. */ if (!Object.isElement(elt)) { return; } if (this.lastelt != elt) { this.lastelt = elt; /* Do mouseover/mouseout-like detection here. Saves on observe * calls and handles case where mouse moves over scrollbars. */ if (DragDrop.Drops.drops.size()) { if (!elt.hasClassName('DropElt')) { elt = elt.up('.DropElt'); } if (elt) { if (this.ghost && (elt == this.ghost.elt)) { return; } elt = DragDrop.Drops.getDrop(elt); if (elt == d) { d_update = false; } else { elt.mouseOver(e); d = elt; } } else if (d) { d.mouseOut(e); d = null; } } if (d_update) { this._updateCaption(d, div, e, e.pointerX(), e.pointerY()); } } if (this.lastcaption) { this._position(this.caption, xy[0], xy[1]); } }, _updateCaption: function(d, div, e, x, y) { var caption, cname, c_opt; if (d && DragDrop.validDrop(this.element)) { d_cap = d.options.caption; if (!d_cap) { return; } caption = Object.isFunction(d_cap) ? d_cap(d.element, this.element, e) : d_cap; if (caption && d.options.hoverclass) { cname = d.options.hoverclass; } } if (!caption) { c_opt = this.options.caption; caption = Object.isFunction(c_opt) ? c_opt(this.element) : c_opt; } if (caption != this.lastcaption) { this.lastcaption = caption; if (caption.empty()) { div.hide(); } else { div.update(caption).writeAttribute({ className: cname || this.options.classname }); this.caption = this._prepareHover(div, x, y, 'caption'); } } }, _findElement: function(e) { var drop, x, y; if (this.options.caption || (this.options.offset && (this.options.offset.x > 0 || this.options.offset.y > 0))) { return e.element(); } if (!DragDrop.Drops.drops.size()) { return; } Position.prepare(); x = e.pointerX(); y = e.pointerY(); drop = DragDrop.Drops.drops.find(function(drop) { return Position.within(drop.value.element, x, y); }); if (drop) { return drop.value.element; } }, _keyPress: function(e) { if (DragDrop.Drops.drop && DragDrop.Drops.drop.options.keypress) { this._updateCaption(DragDrop.Drops.drop, DragDrop.Drags.div, e, this.lastCoord[0], this.lastCoord[1]); } }, _onMoveScroll: function() { this._stopScrolling(); var delta, p, speed, vp, s = this.options.scroll, dim = s.getDimensions(); // No need to scroll if element is not current scrolling. if (s.scrollHeight == dim.height) { return; } delta = document.viewport.getScrollOffsets(); p = s.viewportOffset(), speed = [ 0, 0 ]; vp = document.viewport.getDimensions(); p[0] += s.scrollLeft + delta.left; p[2] = p[0] + dim.width; // Only scroll if directly above/below element if (this.lastCoord[0] > p[2] || this.lastCoord[0] < p[0]) { return; } p[1] = vp.height - dim.height; p[3] = vp.height - 10; // Left scroll //if (this.lastCoord[0] < p[0]) { // speed[0] = this.lastCoord[0] - p[0]; //} // Top scroll if (this.lastCoord[1] < p[1]) { speed[1] = this.lastCoord[1] - p[1]; } // Scroll right //if (this.lastCoord[0] > p[2]) { // speed[0] = this.lastCoord[0] - p[2]; //} // Scroll left if (this.lastCoord[1] > p[3]) { speed[1] = this.lastCoord[1] - p[3]; } if (speed[0] || speed[1]) { this.lastScrolled = new Date(); this.scrollInterval = setInterval(this._scroll.bind(this, speed[0] * 15, speed[1] * 15), 10); } }, _stopScrolling: function() { if (this.scrollInterval) { clearInterval(this.scrollInterval); this.scrollInterval = null; } }, _scroll: function(x, y) { var current = new Date(), delta = current - this.lastScrolled, s = this.options.scroll; this.lastScrolled = current; //s.scrollLeft += x * delta / 1000; s.scrollTop += y * delta / 1000; }, _position: function(ob, x, y) { var xy, style; if (this.options.snap) { xy = this.options.snap(x, y, this.element); x = xy[0]; y = xy[1]; } else { x -= ob.xy_left; y -= ob.xy_top; if (x < ob.x_left) { x = ob.x_left; } if (y < ob.y_top) { y = ob.y_top; } if (x + ob.width > ob.x_right) { x = ob.x_right - ob.width; } if (y + ob.height > ob.y_bottom) { y = ob.y_bottom - ob.height; } } style = { left: x + 'px', top: y + 'px' }; if (!this.options.caption) { switch (this.options.constraint) { case 'horizontal': delete style.top; break; case 'vertical': delete style.left; break; } } ob.elt.setStyle(style).show(); } }), Drop = Class.create({ initialize: function(el) { this.element = $(el); this.options = Object.extend({ accept: [], caption: '', hoverclass: 'dragdrop', keypress: false }, arguments[1] || {}); DragDrop.Drops.register(this); }, destroy: function() { DragDrop.Drops.unregister(this); }, mouseOver: function(e) { DragDrop.Drops.drop = this; DragDrop.Drags.drag.dragevent = e; this.element.fire('DragDrop2:over', DragDrop.Drags.drag); }, mouseOut: function(e) { this.element.fire('DragDrop2:out', DragDrop.Drags.drag); DragDrop.Drags.drag.dragevent = e; DragDrop.Drops.drop = null; } }); tmpjWNuGb/horde-5.1.5/js/syncmlprefs.js0000644000175000017500000000072212233761316017676 0ustar mathieumathieu/** * Provides the javascript for managing syncml sessions. * * See the enclosed file COPYING for license information (LGPL-2). If you * did not receive this file, see http://www.horde.org/licenses/lgpl. */ var HordeSyncMLPrefs = { removeAnchor: function(device, db) { $('removedevice').setValue(device); $('removedb').setValue(db); document.forms.prefs.actionID = 'update_special'; document.forms.prefs.submit(); } }; tmpjWNuGb/horde-5.1.5/js/textarearesize.js0000644000175000017500000000363012233761316020371 0ustar mathieumathieu/** * TextareaResize: a library that automatically resizes a text area based on * its contents. * * Requires prototypejs 1.6+. * * Usage: * ------ * cs = new TextareaResize(id[, options]); * * id = (string|Element) DOM ID/Element object of textarea. * options = (object) Additional options: * 'max_rows' - (Number) The maximum number of rows to display. * 'observe_time' - (Number) The interval between form field checks. * * Custom Events: * -------------- * TexareaResize:resize * Fired when the textarea is resized. * params: NONE * * @author Michael Slusarz */ var TextareaResize = Class.create({ // Variables used: elt, max_rows, size initialize: function(id, opts) { opts = opts || {}; this.elt = $(id); this.max_rows = opts.max_rows || 5; this.size = -1; new Form.Element.Observer(this.elt, opts.observe_time || 1, this.resize.bind(this)); this.resize(); }, resize: function() { var old_rows, rows, size = $F(this.elt).length; if (size == this.size) { return; } old_rows = rows = Number(this.elt.readAttribute('rows', 1)); if (size > this.size) { while (rows < this.max_rows) { if (this.elt.scrollHeight == this.elt.clientHeight) { break; } this.elt.writeAttribute('rows', ++rows); } } else if (rows > 1) { do { this.elt.writeAttribute('rows', --rows); if (this.elt.scrollHeight != this.elt.clientHeight) { this.elt.writeAttribute('rows', ++rows); break; } } while (rows > 1); } this.size = size; if (rows != old_rows) { this.elt.fire('TextareaResize:resize'); } } }); tmpjWNuGb/horde-5.1.5/js/facebookclient.js0000644000175000017500000001033112233761316020276 0ustar mathieumathieu/** * Facebook client javascript. * * See the enclosed file COPYING for license information (GPL). If you * did not receive this file, see http://www.horde.org/licenses/gpl. * * @author Michael J. Rubinsky * @package Horde */ var Horde_Facebook = Class.create({ oldest: '', newest: '', opts: {}, /** * opts.spinner * opts.input * opts.refreshrate * opts.content * opts.endpoint, * opts.notifications * opts.getmore * opts.button * opts.instance * opts.filter * opts.count * */ initialize: function(opts) { this.opts = Object.extend({ refreshrate: 300, count: 10, filter: 'nf' }, opts); this.getNewEntries(); $(this.opts.getmore).observe('click', function(e) { this.getOlderEntries(); e.stop(); }.bind(this)); $(this.opts.button).observe('click', function(e) { this.updateStatus(); e.stop(); }.bind(this)); }, /** * Update FB status. * * @param string statusText The new status text. * @param string inputNode The DOM Element for the input box. * * @return void */ updateStatus: function() { if (!$F(this.opts.input)) { return; } $(this.opts.spinner).toggle(); var params = { actionID: 'updateStatus', statusText: $F(this.opts.input) }; new Ajax.Request(this.opts.endpoint, { method: 'post', parameters: params, onSuccess: function(response) { $(this.opts.input).value = ''; $(this.opts.spinner).toggle(); $(this.opts.content).insert({ 'top': response.responseText }); }.bind(this), onFailure: function() { $(this.opts.spinner).toggle(); } }); }, addLike: function(post_id) { $(this.opts.spinner).toggle(); var params = { actionID: 'addLike', post_id: post_id }; new Ajax.Updater( {success:'fb' + post_id}, this.opts.endpoint, { method: 'post', parameters: params, onComplete: function() { $(this.opts.spinner).toggle(); }.bind(this), onFailure: function() { $(this.opts.spinner).toggle(); }.bind(this) } ); return false; }, getOlderEntries: function() { var params = { 'actionID': 'getStream', 'newest': this.oldest, 'instance': this.opts.instance, 'count': this.opts.count, 'filter': this.opts.filter }; new Ajax.Request(this.opts.endpoint, { method: 'post', parameters: params, onSuccess: this._getOlderEntriesCallback.bind(this), onFailure: function() { $(this.opts.spinner).toggle(); } }); }, _getOlderEntriesCallback: function(response) { var content = response.responseJSON.c, h = $(this.opts.content).scrollHeight; this.oldest = response.responseJSON.o; $(this.opts.content).insert(content); $(this.opts.content).scrollTop = h; }, getNewEntries: function() { var params = { 'actionID': 'getStream', 'notifications': this.opts.notifications, 'oldest': this.oldest, 'newest': this.newest, 'instance': this.opts.instance, 'count': this.opts.count, 'filter': this.opts.filter }; new Ajax.Request(this.opts.endpoint, { method: 'post', parameters: params, onSuccess: this._getNewEntriesCallback.bind(this), onFailure: function() { $(this.opts.spinner).toggle(); } }); }, _getNewEntriesCallback: function(response) { $(this.opts.content).insert({ 'top': response.responseJSON.c }); $(this.opts.notifications).update(response.responseJSON.nt); this.newest = response.responseJSON.n; if (!this.oldest) { this.oldest = response.responseJSON.o; } } }); tmpjWNuGb/horde-5.1.5/js/obrowser.js0000644000175000017500000000044312233761316017173 0ustar mathieumathieufunction chooseObject(oid) { if (!window.opener || !window.opener.obrowserCallback) { return false; } var result = window.opener.obrowserCallback(window.name, oid); if (!result) { window.close(); return; } alert(result); return false; } tmpjWNuGb/horde-5.1.5/js/sidebar.js0000644000175000017500000000375212233761316016750 0ustar mathieumathieu/** * Horde sidebar javascript. * * See the enclosed file COPYING for license information (LGPL-2). If you * did not receive this file, see http://www.horde.org/licenses/lgpl. */ var HordeSidebar = { // Vars set in Horde_Sidebar // opts, text refreshEvents: function() { $('horde-sidebar').select('div.horde-resources div').each(function(s) { s.observe('mouseover', s.addClassName.curry('horde-resource-over')); s.observe('mouseout', s.removeClassName.curry('horde-resource-over')); }); }, clickHandler: function(e) { if (e.isRightClick() || typeof e.element != 'function') { return; } var elt = e.element(), params = ';DOMAIN=' + this.opts.cookieDomain + ';PATH=' + this.opts.cookiePath + ';'; while (Object.isElement(elt)) { switch (elt.className) { case 'horde-collapse': elt.up().next().blindUp({ duration: 0.5, queue: 'end' }); elt.title = this.text.expand; elt.removeClassName('horde-collapse'); elt.addClassName('horde-expand'); document.cookie = 'horde_sidebar_c_' + elt.identify() + '=1' + params; return; case 'horde-expand': elt.up().next().blindDown({ duration: 0.5, queue: 'end' }); elt.title = this.text.collapse; elt.removeClassName('horde-expand'); elt.addClassName('horde-collapse'); document.cookie = 'horde_sidebar_c_' + elt.identify() + '=0' + params; return; } elt = elt.up(); } // Workaround Firebug bug. Prototype.emptyFunction(); }, onDomLoad: function() { this.refreshEvents(); } }; document.observe('dom:loaded', HordeSidebar.onDomLoad.bind(HordeSidebar)); document.observe('click', HordeSidebar.clickHandler.bindAsEventListener(HordeSidebar)); tmpjWNuGb/horde-5.1.5/js/json2.js0000644000175000017500000002572612233761316016377 0ustar mathieumathieu/* json2.js 2013-05-26 Public Domain. NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. See http://www.JSON.org/js.html */ // Create a JSON object only if one does not already exist. We create the // methods in a closure to avoid creating global variables. if (typeof JSON !== 'object') { JSON = {}; } (function () { 'use strict'; function f(n) { // Format integers to have at least two digits. return n < 10 ? '0' + n : n; } if (typeof Date.prototype.toJSON !== 'function') { Date.prototype.toJSON = function () { return isFinite(this.valueOf()) ? this.getUTCFullYear() + '-' + f(this.getUTCMonth() + 1) + '-' + f(this.getUTCDate()) + 'T' + f(this.getUTCHours()) + ':' + f(this.getUTCMinutes()) + ':' + f(this.getUTCSeconds()) + 'Z' : null; }; String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function () { return this.valueOf(); }; } var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, gap, indent, meta = { // table of character substitutions '\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"' : '\\"', '\\': '\\\\' }, rep; function quote(string) { // If the string contains no control characters, no quote characters, and no // backslash characters, then we can safely slap some quotes around it. // Otherwise we must also replace the offending characters with safe escape // sequences. escapable.lastIndex = 0; return escapable.test(string) ? '"' + string.replace(escapable, function (a) { var c = meta[a]; return typeof c === 'string' ? c : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); }) + '"' : '"' + string + '"'; } function str(key, holder) { // Produce a string from holder[key]. var i, // The loop counter. k, // The member key. v, // The member value. length, mind = gap, partial, value = holder[key]; // If the value has a toJSON method, call it to obtain a replacement value. if (value && typeof value === 'object' && typeof value.toJSON === 'function') { value = value.toJSON(key); } // If we were called with a replacer function, then call the replacer to // obtain a replacement value. if (typeof rep === 'function') { value = rep.call(holder, key, value); } // What happens next depends on the value's type. switch (typeof value) { case 'string': return quote(value); case 'number': // JSON numbers must be finite. Encode non-finite numbers as null. return isFinite(value) ? String(value) : 'null'; case 'boolean': case 'null': // If the value is a boolean or null, convert it to a string. Note: // typeof null does not produce 'null'. The case is included here in // the remote chance that this gets fixed someday. return String(value); // If the type is 'object', we might be dealing with an object or an array or // null. case 'object': // Due to a specification blunder in ECMAScript, typeof null is 'object', // so watch out for that case. if (!value) { return 'null'; } // Make an array to hold the partial results of stringifying this object value. gap += indent; partial = []; // Is the value an array? if (Object.prototype.toString.apply(value) === '[object Array]') { // The value is an array. Stringify every element. Use null as a placeholder // for non-JSON values. length = value.length; for (i = 0; i < length; i += 1) { partial[i] = str(i, value) || 'null'; } // Join all of the elements together, separated with commas, and wrap them in // brackets. v = partial.length === 0 ? '[]' : gap ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' : '[' + partial.join(',') + ']'; gap = mind; return v; } // If the replacer is an array, use it to select the members to be stringified. if (rep && typeof rep === 'object') { length = rep.length; for (i = 0; i < length; i += 1) { if (typeof rep[i] === 'string') { k = rep[i]; v = str(k, value); if (v) { partial.push(quote(k) + (gap ? ': ' : ':') + v); } } } } else { // Otherwise, iterate through all of the keys in the object. for (k in value) { if (Object.prototype.hasOwnProperty.call(value, k)) { v = str(k, value); if (v) { partial.push(quote(k) + (gap ? ': ' : ':') + v); } } } } // Join all of the member texts together, separated with commas, // and wrap them in braces. v = partial.length === 0 ? '{}' : gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' : '{' + partial.join(',') + '}'; gap = mind; return v; } } // If the JSON object does not yet have a stringify method, give it one. if (typeof JSON.stringify !== 'function') { JSON.stringify = function (value, replacer, space) { // The stringify method takes a value and an optional replacer, and an optional // space parameter, and returns a JSON text. The replacer can be a function // that can replace values, or an array of strings that will select the keys. // A default replacer method can be provided. Use of the space parameter can // produce text that is more easily readable. var i; gap = ''; indent = ''; // If the space parameter is a number, make an indent string containing that // many spaces. if (typeof space === 'number') { for (i = 0; i < space; i += 1) { indent += ' '; } // If the space parameter is a string, it will be used as the indent string. } else if (typeof space === 'string') { indent = space; } // If there is a replacer, it must be a function or an array. // Otherwise, throw an error. rep = replacer; if (replacer && typeof replacer !== 'function' && (typeof replacer !== 'object' || typeof replacer.length !== 'number')) { throw new Error('JSON.stringify'); } // Make a fake root object containing our value under the key of ''. // Return the result of stringifying the value. return str('', {'': value}); }; } // If the JSON object does not yet have a parse method, give it one. if (typeof JSON.parse !== 'function') { JSON.parse = function (text, reviver) { // The parse method takes a text and an optional reviver function, and returns // a JavaScript value if the text is a valid JSON text. var j; function walk(holder, key) { // The walk method is used to recursively walk the resulting structure so // that modifications can be made. var k, v, value = holder[key]; if (value && typeof value === 'object') { for (k in value) { if (Object.prototype.hasOwnProperty.call(value, k)) { v = walk(value, k); if (v !== undefined) { value[k] = v; } else { delete value[k]; } } } } return reviver.call(holder, key, value); } // Parsing happens in four stages. In the first stage, we replace certain // Unicode characters with escape sequences. JavaScript handles many characters // incorrectly, either silently deleting them, or treating them as line endings. text = String(text); cx.lastIndex = 0; if (cx.test(text)) { text = text.replace(cx, function (a) { return '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); }); } // In the second stage, we run the text against regular expressions that look // for non-JSON patterns. We are especially concerned with '()' and 'new' // because they can cause invocation, and '=' because it can cause mutation. // But just to be safe, we want to reject all unexpected forms. // We split the second stage into 4 regexp operations in order to work around // crippling inefficiencies in IE's and Safari's regexp engines. First we // replace the JSON backslash pairs with '@' (a non-JSON character). Second, we // replace all simple value tokens with ']' characters. Third, we delete all // open brackets that follow a colon or comma or that begin the text. Finally, // we look to see that the remaining characters are only whitespace or ']' or // ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. if (/^[\],:{}\s]*$/ .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { // In the third stage we use the eval function to compile the text into a // JavaScript structure. The '{' operator is subject to a syntactic ambiguity // in JavaScript: it can begin a block or an object literal. We wrap the text // in parens to eliminate the ambiguity. j = eval('(' + text + ')'); // In the optional fourth stage, we recursively walk the new structure, passing // each name/value pair to a reviver function for possible transformation. return typeof reviver === 'function' ? walk({'': j}, '') : j; } // If the text is not JSON parseable, then a SyntaxError is thrown. throw new SyntaxError('JSON.parse'); }; } }()); tmpjWNuGb/horde-5.1.5/js/twitterclient.js0000644000175000017500000003537412233761316020245 0ustar mathieumathieu/** * Javascript based Twitter client for Horde. * * See the enclosed file COPYING for license information (GPL). If you * did not receive this file, see http://www.horde.org/licenses/gpl. * * @author Michael J. Rubinsky * @package Horde */ var Horde_Twitter = Class.create({ inReplyTo: '', oldestId: null, newestId: null, oldestMention: null, newestMention: null, instanceid: null, activeTab: 'stream', overlay: null, /** * Const'r * * opts.input The domid of the input form element. * opts.counter The domid of the node to display chars remaining. * opts.spinner The domid of the spinner element. * opts.content The main content area, where the tweets are placed. * opts.mentions The domid of where the mentions stream should be placed. * opts.endpoint The url endpoint for horde/servcies/twitter.php * opts.inreplyto * opts.refreshrate How often to refresh the stream * opts.strings.inreplyto * opts.strings.defaultText * opts.strings.justnow * opts.getmore * opts.instanceid * opts.previewid The domid of a preview element. */ initialize: function(opts) { this.opts = Object.extend({ refreshrate: 300 }, opts); $(this.opts.input).observe('focus', function() { this.clearInput(); }.bind(this)); $(this.opts.input).observe('blur', function() { if (!$(this.opts.input).value.length) { $(this.opts.input).value = this.opts.strings.defaultText; } }.bind(this)); $(this.opts.input).observe('keyup', function() { $(this.opts.counter).update(140 - $F(this.opts.input).length); }.bind(this)); $(this.opts.getmore).observe('click', function(e) { this.getOlderEntries(); e.stop(); }.bind(this)); this.instanceid = opts.instanceid; $(this.instanceid + '_updatebutton').observe('click', function(e) { this.updateStatus($F(this.instanceid + '_newStatus')); e.stop(); }.bind(this)); $(this.instanceid + '_showcontenttab').observe('click', function(e) { this.showStream(); e.stop(); }.bind(this)); $(this.instanceid + '_showmentiontab').observe('click', function(e) { this.showMentions(); e.stop(); }.bind(this)); this.overlay = new Element('div', { 'class': 'hordeSmOverlay' }).update(' '); this.overlay.hide(); $(this.instanceid + '_preview').insert({ 'before': this.overlay }); $(this.instanceid + '_preview').observe('click', this.hidePreview.bind(this)); /* Get the first page */ this.getNewEntries(); }, /** * Post a new tweet. * */ updateStatus: function(statusText) { $(this.opts.input).stopObserving('blur'); $(this.opts.spinner).toggle(); params = { actionID: 'updateStatus', statusText: statusText, inReplyTo: this.inReplyTo }; new Ajax.Request(this.opts.endpoint, { method: 'post', parameters: params, onSuccess: function(response) { this.updateCallback(response.responseJSON); }.bind(this), onFailure: function() { $(this.opts.spinner).toggle(); this.inReplyTo = ''; }.bind(this) }); }, /** * Retweet the specifed tweet id. * */ retweet: function(id) { $(this.opts.spinner).toggle(); params = { actionID: 'retweet', tweetId: id }; new Ajax.Request(this.opts.endpoint, { method: 'post', parameters: params, onSuccess: function(response) { this.updateCallback(response.responseJSON); }.bind(this), onFailure: function() { $(this.opts.spinner).toggle(); this.inReplyTo = ''; }.bind(this) }); }, /** * Favorite a tweet */ favorite: function(id) { $(this.opts.spinner).toggle(); var params = { actionID: 'favorite', tweetId: id }; new Ajax.Request(this.opts.endpoint, { method: 'post', parameters: params, onSuccess: function(response) { this.favoriteCallback(response.responseJSON); }.bind(this), onFailure: function() { $(this.opts.spinner).toggle(); }.bind(this) }); }, unfavorite: function(id) { $(this.opts.spinner).toggle(); var params = { actionID: 'unfavorite', tweetId: id }; new Ajax.Request(this.opts.endpoint, { method: 'post', parameters: params, onSuccess: function(response) { this.unfavoriteCallback(response.responseJSON); }.bind(this), onFailure: function() { $(this.opts.spinner).toggle(); }.bind(this) }); }, favoriteCallback: function(r) { $(this.opts.spinner).toggle(); $('favorite' + this.instanceid + r.id_str).update(this.opts.strings.unfavorite); $('favorite' + this.instanceid + r.id_str).writeAttribute('onClick', ''); $('favorite' + this.instanceid + r.id_str).observe('click', function(e) { this.unfavorite(r.id_str); e.stop(); }.bind(this)); }, unfavoriteCallback: function(r) { $(this.opts.spinner).toggle(); $('favorite' + this.instanceid + r.id_str).update(this.opts.strings.favorite); $('favorite' + this.instanceid + r.id_str).writeAttribute('onClick', ''); $('favorite' + this.instanceid + r.id_str).observe('click', function(e) { this.favorite(r.id_str); e.stop(); }.bind(this)); }, /** * Update the timeline stream. * * @param integer page The page number to retrieve. */ getOlderEntries: function() { var callback, params = { actionID: 'getPage', i: this.instanceid }; switch (this.activeTab) { case 'stream': if (this.oldestId) { params.max_id = this.oldestId; } callback = this._getOlderEntriesCallback.bind(this); break; case 'mentions': if (this.oldestMention) { params.max_id = this.oldestMention; } callback = this._getOlderMentionsCallback.bind(this); params.mentions = 1; break; } new Ajax.Request(this.opts.endpoint, { method: 'post', parameters: params, onSuccess: callback, onFailure: function() { $(this.opts.spinner).toggle(); }.bind(this) }); }, /** * Get newer entries, or the first page of entries if this is the first * request. */ getNewEntries: function(type) { var callback, params = { actionID: 'getPage', i: this.instanceid }; if (type == 'mentions') { if (this.newestMention) { params.since_id = this.newestMention; } else { params.page = 1; } params.mentions = 1; callback = this._getNewMentionsCallback.bind(this); } else { if (this.newestId) { params.since_id = this.newestId; } else { params.page = 1; } callback = this._getNewEntriesCallback.bind(this); } new Ajax.Request(this.opts.endpoint, { method: 'post', parameters: params, onSuccess: callback, onFailure: function() { $(this.opts.spinner).toggle(); }.bind(this) }); }, showPreview: function(url) { $(this.instanceid + '_preview').clonePosition($(this.instanceid + '_preview').up()); $(this.instanceid + '_preview').hide(); $(this.instanceid + '_preview').update(); $(this.instanceid + '_preview').appendChild( new Element('img', { 'src': url }) ); this.overlay.clonePosition($(this.instanceid + '_preview').up()); this.overlay.show(); Effect.BlindDown(this.instanceid + '_preview'); return false; }, hidePreview: function(e) { $(this.instanceid + '_preview').hide(); this.overlay.hide(); }, /** * Callback for updateStream request for older stream entries. Updates * display, remembers the oldest id we know about. * * @param object response The response object from the Ajax request. */ _getOlderEntriesCallback: function(response) { var h, content = response.responseJSON.c; if (response.responseJSON.o) { this.oldestId = response.responseJSON.o; h = $(this.opts.content).scrollHeight $(this.opts.content).insert(content); $(this.opts.content).scrollTop = h; } }, /** * Callback for updateStream request for older mentions. Updates display, * remembers the oldest id we know about. * * @param object response The response object from the Ajax request. */ _getOlderMentionsCallback: function(response) { var h, content = response.responseJSON.c; // If no more available, the oldest id will be null if (response.responseJSON.o) { this.oldestMention = response.responseJSON.o; h = $(this.opts.mentions).scrollHeight $(this.opts.mentions).insert(content); $(this.opts.mentions).scrollTop = h; } }, /** * Callback for retrieving new entries. Updates the display and remembers * the newest id, and possible the older id as well. * */ _getNewEntriesCallback: function(response) { var h, content = response.responseJSON.c; if (response.responseJSON.n != this.newestId) { h = $(this.opts.content).scrollHeight; $(this.opts.content).insert({ 'top': content }); if (this.activeTab != 'stream') { $(this.opts.contenttab).addClassName('hordeSmNew'); } else { // Don't scroll if it's the first request. if (this.newestId) { $(this.opts.content).scrollTop = h; } else { $(this.opts.content).scrollTop = 0; } } this.newestId = response.responseJSON.n; // First time we've been called, record the oldest one as well.' if (!this.oldestId) { this.oldestId = response.responseJSON.o; } } new PeriodicalExecuter(function(pe) { this.getNewEntries(); pe.stop(); }.bind(this), this.opts.refreshrate ); }, /** * Callback for retrieving new mentions. * */ _getNewMentionsCallback: function(response) { var h, content = response.responseJSON.c; if (response.responseJSON.n != this.newestMention) { h = $(this.opts.mentions).scrollHeight; $(this.opts.mentions).insert({ 'top': content }); if (this.activeTab != 'mentions') { $(this.opts.mentiontab).addClassName('hordeSmNew'); } else { // Don't scroll if it's the first request. if (this.newestMention) { $(this.opts.mentions).scrollTop = h; } else { $(this.opts.mentions).scrollTop = 0; } } this.newestMention = response.responseJSON.n; // First time we've been called, record the oldest one as well. if (!this.oldestMention) { this.oldestMention = response.responseJSON.o; } } new PeriodicalExecuter(function(pe) { this.getNewEntries('mentions'); pe.stop(); }.bind(this), this.opts.refreshrate ); }, /** * Build the reply structure */ buildReply: function(id, userid, usertext) { this.inReplyTo = id; $(this.opts.input).focus(); $(this.opts.input).value = '@' + userid + ' '; $(this.opts.inreplyto).update(this.opts.strings.inreplyto + usertext); }, /** * Callback for after a new tweet is posted. */ updateCallback: function(response) { if (response.error) this.buildNewTweet(response); $(this.opts.input).value = this.opts.strings.defaultText; $(this.opts.spinner).toggle(); this.inReplyTo = ''; $(this.opts.inreplyto).update(''); }, /** * Build and display the node for a new tweet. */ buildNewTweet: function(response) { var tweet = new Element('div', {'class':'hordeSmStreamstory'}), tPic = new Element('div', {'class':'solidbox hordeSmAvatar'}).update( new Element('a', {'href': 'http://twitter.com/' + response.user.screen_name}).update( new Element('img', {'src':response.user.profile_image_url}) ) ); tPic.appendChild( new Element('div', { 'style': {'overflow': 'hidden' }}).update( new Element('a', {'href': 'http://twitter.com/' + response.user.screen_name}).update(response.user.screen_name) ) ); var tBody = new Element('div', {'class':'hordeSmStreambody'}).update(response.text); tBody.appendChild(new Element('div', {'class':'hordeSmStreaminfo'}).update(this.opts.strings.justnow + '

      ')); tweet.appendChild(tPic); tweet.appendChild(tBody); $(this.opts.content).insert({top:tweet}); }, showMentions: function() { if (this.activeTab != 'mentions') { $(this.opts.mentiontab).removeClassName('hordeSmNew'); this.toggleTabs(); $(this.opts.content).hide(); // Only poll once on click, after that we rely on PeriodcalExecuter if (!this.oldestMention) { this.getNewEntries('mentions'); } $(this.opts.mentions).show(); this.activeTab = 'mentions'; } }, showStream: function() { if (this.activeTab != 'stream') { $(this.opts.contenttab).removeClassName('hordeSmNew'); this.toggleTabs(); $(this.opts.mentions).hide(); $(this.opts.content).show(); this.activeTab = 'stream'; } }, toggleTabs: function() { $(this.opts.contenttab).toggleClassName('horde-active'); $(this.opts.mentiontab).toggleClassName('horde-active'); }, /** * Clear the input field. */ clearInput: function() { $(this.opts.input).value = ''; } }); tmpjWNuGb/horde-5.1.5/js/categoryprefs.js0000644000175000017500000000352412233761316020211 0ustar mathieumathieu/** * Provides the javascript for managing categories. * * See the enclosed file COPYING for license information (LGPL-2). If you * did not receive this file, see http://www.horde.org/licenses/lgpl. */ var HordeCategoryPrefs = { // Variables defaulting to null: category_text removeCategory: function(e) { var p = $('prefs'); $(p.cAction).setValue('remove'); $(p.category).setValue(e.element().up().readAttribute('category')); p.submit(); }, addCategory: function() { var category = window.prompt(this.category_text, ''), p; if (!category.empty()) { p = $('prefs'); $(p.cAction).setValue('add'); $(p.category).setValue(category); p.submit(); } }, resetBackgrounds: function() { $('prefs').getInputs('text').each(function(i) { if (i.readAttribute('id').startsWith('color_')) { i.setStyle({ backgroundColor: $F(i) }); } }); }, colorPicker: function(e) { var elt = e.element(), input = elt.up().previous('INPUT'); new ColorPicker({ color: $F(input), offsetParent: elt, update: [ [ input, 'value' ], [ input, 'background' ] ] }); e.stop(); }, onDomLoad: function() { $('prefs').observe('reset', function() { this.resetBackgrounds.defer(); }.bind(this)); $('add_category').observe('click', this.addCategory.bind(this)); $$('.categoryColorPicker').invoke('observe', 'click', this.colorPicker.bindAsEventListener(this)); $$('.categoryDelete').invoke('observe', 'click', this.removeCategory.bindAsEventListener(this)); } }; document.observe('dom:loaded', HordeCategoryPrefs.onDomLoad.bind(HordeCategoryPrefs)); tmpjWNuGb/horde-5.1.5/js/contextsensitive.js0000644000175000017500000002760612233761316020761 0ustar mathieumathieu/** * ContextSensitive: a library for generating context-sensitive content on * HTML elements. It will take over the click/oncontextmenu functions for the * document, and works only where these are possible to override. It allows * contextmenus to be created via both a left and right mouse click. * * On Opera, the context menu is triggered by a left click + SHIFT + CTRL * combination. * * Requires prototypejs 1.6+ and scriptaculous 1.8+ (effects.js only). * * * Usage: * ------ * cs = new ContextSensitive(); * * Custom Events: * -------------- * Custom events are triggered on the base element. The parameters given * below are available through the 'memo' property of the Event object. * * ContextSensitive:click * Fired when a contextmenu element is clicked on. * params: (object) elt - (Element) The menu element clicked on. * trigger - (string) The parent menu. * * ContextSensitive:show * Fired before a contextmenu is displayed. * params: (string) The DOM ID of the context menu. * * ContextSensitive:trigger * Fired when a context menu is triggered and the element does not exist on * the page. * params: (string) The DOM ID of the context menu element. * * * Original code by Havard Eide (http://eide.org/) released under the MIT * license. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * * @author Chuck Hagenbuch * @author Michael Slusarz */ var ContextSensitive = Class.create({ initialize: function() { this.baseelt = null; this.current = []; this.elements = $H(); this.submenus = $H(); this.submenus_cache = []; this.triggers = []; if (!Prototype.Browser.Opera) { document.observe('contextmenu', this._rightClickHandler.bindAsEventListener(this)); } document.observe('click', this._leftClickHandler.bindAsEventListener(this)); document.observe('mouseover', this._mouseoverHandler.bindAsEventListener(this)); document.observe(Prototype.Browser.Gecko ? 'DOMMouseScroll' : 'mousescroll', this.close.bind(this)); }, /** * Elements are of type ContextSensitive.Element. */ addElement: function(id, target, opts) { var left = Boolean(opts.left); if (id && !this.validElement(id, left)) { this.elements.set(id + Number(left), new ContextSensitive.Element(id, target, opts)); } }, /** * Remove a registered element. */ removeElement: function(id) { this.elements.unset(id + '0'); this.elements.unset(id + '1'); }, /** * Hide the currently displayed element(s). */ close: function() { this._closeMenu(0, true); }, /** * Close all menus below a specified level. */ _closeMenu: function(idx, immediate) { if (this.current.size()) { this.current.splice(idx, this.current.size() - idx).each(function(s) { // Fade-out on final display. if (!immediate && idx === 0) { s.fade({ duration: 0.15 }); } else { $(s).hide(); } }); this.triggers.splice(idx, this.triggers.size() - idx).each(function(s) { $(s).removeClassName('contextHover'); }); if (idx === 0) { this.baseelt = null; } } }, /** * Returns the current displayed menu element ID, if any. If more than one * submenu is open, returns the last ID opened. */ currentmenu: function() { return this.current.last(); }, /** * Get a valid element (the ones that can be right-clicked) based * on a element ID. */ validElement: function(id, left) { return this.elements.get(id + Number(Boolean(left))); }, /** * Set the disabled flag of an event. */ disable: function(id, left, disable) { var e = this.validElement(id, left); if (e) { e.disable = disable; } }, /** * Called when a left click event occurs. Will return before the * element is closed if we click on an element inside of it. */ _leftClickHandler: function(e) { var base, elt, elt_up, trigger; if (this.operaCheck(e)) { this._rightClickHandler(e, false); e.stop(); return; } // Check for a right click. FF on Linux triggers an onclick event even // w/a right click, so disregard. if (e.isRightClick()) { return; } // Check for click in open contextmenu. if (this.current.size()) { elt = e.element(); if (!elt.match('A')) { elt = elt.up('A'); if (!elt) { this._rightClickHandler(e, true); return; } } elt_up = elt.up('.contextMenu'); if (elt_up) { e.stop(); if (elt.hasClassName('contextSubmenu') && elt_up.identify() != this.currentmenu()) { this._closeMenu(this.current.indexOf(elt.identify())); } base = this.baseelt; trigger = this.triggers.last(); this.close(); base.fire('ContextSensitive:click', { elt: elt, trigger: trigger }); return; } } // Check if the mouseclick is registered to an element now. this._rightClickHandler(e, true); }, /** * Checks if the Opera right-click emulation is present. */ operaCheck: function(e) { return Prototype.Browser.Opera && e.shiftKey && e.ctrlKey; }, /** * Called when a right click event occurs. */ _rightClickHandler: function(e, left) { if (this.trigger(e.element(), left, e.pointerX(), e.pointerY())) { e.stop(); } }, /** * Display context menu if valid element has been activated. */ trigger: function(target, leftclick, x, y) { var ctx, def_ctx, offset, offsets, tmp, voffsets; if (!Object.isElement(target)) { return false; } [ target ].concat(target.ancestors()).find(function(n) { ctx = this.validElement(n.id, leftclick); return ctx; }, this); // Try to retrieve the context-sensitive element we want to // display. If we can't find it we just return. if (!ctx || ctx.disable || (leftclick && target == this.baseelt)) { tmp = target.up('.contextMenu'); def_ctx = tmp && this.current.include(tmp.readAttribute('id')); this.close(); return def_ctx; } this.close(); // Register the element that was clicked on. this.baseelt = target; offset = ctx.opts.offset; if (!offset && (Object.isUndefined(x) || Object.isUndefined(y))) { offset = target.identify(); } offset = $(offset); if (offset) { offsets = offset.viewportOffset(); voffsets = document.viewport.getScrollOffsets(); x = offsets[0] + voffsets.left; y = offsets[1] + offset.getHeight() + voffsets.top; } if (!this._displayMenu(ctx.ctx, x, y)) { return false; } this.triggers.push(ctx.ctx); return true; }, /** * Display the [sub]menu on the screen. */ _displayMenu: function(elt_id, x, y) { var eltL, h, id, v, w, elt = $(elt_id); if (!elt) { document.fire('ContextSensitive:trigger', elt_id); elt = $(elt_id); if (!elt) { return false; } elt.addClassName('contextMenu'); // Attempt to attach submenus now. this.submenus_cache = this.submenus_cache.reject(function(s) { return $(s) ? $(s).addClassName('contextSubmenu') : false; }); } id = elt.identify(); this.baseelt.fire('ContextSensitive:show', id); // Get window/element dimensions elt.setStyle({ visibility: 'hidden' }).show(); eltL = elt.getLayout(), h = eltL.get('border-box-height'); w = eltL.get('border-box-width'); elt.hide().setStyle({ visibility: 'visible' }); v = document.viewport.getDimensions(); // Make sure context window is entirely on screen if ((y + h) > v.height) { y = v.height - h - 2; } if ((x + w) > v.width) { x = this.current.size() ? ($(this.current.last()).viewportOffset()[0] - w) : (v.width - w - 2); } elt.setStyle({ left: x + 'px', top: y + 'px' }); if (this.current.size()) { elt.show(); } else { // Fade-in on initial display. elt.appear({ duration: 0.15 }); } this.current.push(id); return true; }, /** * Add a submenu to an existing menu. */ addSubMenu: function(id, submenu) { if (!this.submenus.get(id)) { this.submenus.set(id, submenu); this.submenus_cache.push(id); } }, /** * Mouseover DOM Event handler. */ _mouseoverHandler: function(e) { if (!this.current.size()) { return; } var cm = this.currentmenu(), elt = e.element(), elt_up = elt.up('.contextMenu'), id = elt.identify(), id_div, offsets, sub, voffsets, x, y; if (!elt_up) { return; } id_div = elt_up.identify(); if (elt.hasClassName('contextSubmenu')) { sub = this.submenus.get(id); if (sub != cm || this.currentmenu() != id) { if (id_div != cm) { this._closeMenu(this.current.indexOf(id_div) + 1); } offsets = elt.viewportOffset(); voffsets = document.viewport.getScrollOffsets(); x = offsets[0] + voffsets.left + elt.getWidth(); y = offsets[1] + voffsets.top; if (this._displayMenu(sub, x, y)) { this.triggers.push(id); elt.addClassName('contextHover'); } } } else if ((this.current.size() > 1) && id_div != cm) { this._closeMenu(this.current.indexOf(id)); } } }); ContextSensitive.Element = Class.create({ // opts: 'left' -> monitor left click; 'offset' -> id of element used to // determine offset placement initialize: function(id, target, opts) { this.id = id; this.ctx = target; this.opts = opts; this.opts.left = Boolean(opts.left); this.disable = opts.disable; } }); tmpjWNuGb/horde-5.1.5/js/ieescguard.js0000644000175000017500000000116212233761316017443 0ustar mathieumathieu/** * Javascript code for attaching an onkeydown listener to textarea and * text input elements to prevent loss of data when the user hits the * ESC key. * * Requires prototypejs 1.6.0.2+. * * See the enclosed file COPYING for license information (LGPL-2). If you * did not receive this file, see http://www.horde.org/licenses/lgpl. */ if (Prototype.Browser.IE) { document.observe('keydown', function(e) { var elt = e.element(); if ((e.keyCode || e.charCode) == Event.KEY_ESC && (elt.match('TEXTAREA') || elt.match('INPUT[type="text"]'))) { e.stop(); } }); } tmpjWNuGb/horde-5.1.5/js/form_ghost.js0000644000175000017500000001025212233761316017477 0ustar mathieumathieu/** * form_ghost.js - Provide text ghosting for text inputs * Requires prototype.js 1.7.0+ * * Usage: * ------ * new FormGhost(element, { * // Ghosted class name * css: 'formGhost' * }); * * Ghosted text is copied from the element's 'title' attribute. * * * Events fired for ghosted elements: * ---------------------------------- * 'FormGhost:ghost' * 'FormGhost:unghost' * 'FormGhost:reset' * 'FormGhost:submit' * * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * * Copyright 2011-2013 Horde LLC (http://www.horde.org/) * * @author Michael Slusarz * @author Jan Schneider * @category Horde * @package Horde */ var FormGhost = Class.create({ // Properties: elt, hasinput, isghost, opts initialize: function(elt, opts) { this.elt = $(elt); this.opts = Object.extend({ css: 'formGhost' }, opts || {}); this.elt.observe('keydown', this.keydownHandler.bindAsEventListener(this)); this.elt.observe('focus', this.unghost.bind(this)); this.elt.observe('blur', this.ghost.bind(this)); this.elt.up('FORM').observe('submit', this.submit.bind(this)); this.ghost(); }, ghost: function() { if (!this.isghost) { if ($F(this.elt).empty()) { this.elt.addClassName(this.opts.css).setValue(this.elt.readAttribute('title')); this.hasinput = false; } else { this.hasinput = true; } this.elt.fire('FormGhost:ghost'); this.isghost = true; } }, unghost: function() { if (this.isghost) { this.elt.removeClassName(this.opts.css); if (!this.hasinput) { this.elt.setValue(''); } this.elt.fire('FormGhost:unghost'); this.isghost = false; } }, refresh: function() { if (!this.hasinput && this.isghost) { this.elt.setValue(this.elt.readAttribute('title')); } }, reset: function() { this.elt.clear(); this.isghost = false; this.ghost(); }, submit: function(e) { var action = this.elt.up('FORM').readAttribute('action'); this.unghost(); this.elt.fire('FormGhost:submit'); if (action.empty() || action == '#') { e.stop(); } }, /* Keydown event handler */ keydownHandler: function(e) { var action, elt = e.element(), kc = e.keyCode || e.charCode, form = e.findElement('FORM'); if (form && elt == this.elt) { switch (kc) { case Event.KEY_ESC: case Event.KEY_TAB: // Catch escapes. if (kc == Event.KEY_ESC || !elt.getValue()) { this.elt.fire('FormGhost:reset'); e.stop(); } elt.blur(); break; case Event.KEY_RETURN: //this.unghost(); this.elt.fire('FormGhost:submit'); action = form.readAttribute('action'); if (action.empty() || action == '#') { e.stop(); } break; } } } }); tmpjWNuGb/horde-5.1.5/js/md5.js0000644000175000017500000002225312233761316016021 0ustar mathieumathieu/* * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message * Digest Algorithm, as defined in RFC 1321. * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet * Distributed under the BSD License * See http://pajhome.org.uk/crypt/md5 for more info. * * Additions by Michael Slusarz * Removed all functions except those needed to do string->hex hashing & * enclosed in MD5 namespace. * * Requires prototype.js (v1.6.1+) */ window.MD5 = { hash: function(s) { return this.rstr2hex(this.rstr_md5(this.str2rstr_utf8(s))); }, /* Calculate the MD5 of a raw string */ rstr_md5: function(s) { return this.binl2rstr(this.binl_md5(this.rstr2binl(s), s.length * 8)); }, /* Convert a raw string to a hex string. */ rstr2hex: function(input) { var i, x, hex_tab = "0123456789abcdef", output = ""; for (i = 0; i < input.length; ++i) { x = input.charCodeAt(i); output += hex_tab.charAt((x >>> 4) & 0x0F) + hex_tab.charAt(x & 0x0F); } return output; }, /* Encode a string as utf-8. For efficiency, this assumes the input is * valid utf-16. */ str2rstr_utf8: function(input) { var x, y, i = -1, output = ""; while (++i < input.length) { /* Decode utf-16 surrogate pairs */ x = input.charCodeAt(i); y = i + 1 < input.length ? input.charCodeAt(i + 1) : 0; if (0xD800 <= x && x <= 0xDBFF && 0xDC00 <= y && y <= 0xDFFF) { x = 0x10000 + ((x & 0x03FF) << 10) + (y & 0x03FF); ++i; } /* Encode output as utf-8 */ if (x <= 0x7F) { output += String.fromCharCode(x); } else if (x <= 0x7FF) { output += String.fromCharCode(0xC0 | ((x >>> 6) & 0x1F), 0x80 | (x & 0x3F)); } else if (x <= 0xFFFF) { output += String.fromCharCode(0xE0 | ((x >>> 12) & 0x0F), 0x80 | ((x >>> 6) & 0x3F), 0x80 | (x & 0x3F)); } else if (x <= 0x1FFFFF) { output += String.fromCharCode(0xF0 | ((x >>> 18) & 0x07), 0x80 | ((x >>> 12) & 0x3F), 0x80 | ((x >>> 6) & 0x3F), 0x80 | (x & 0x3F)); } } return output; }, /* Convert a raw string to an array of little-endian words. * Characters >255 have their high-byte silently ignored. */ rstr2binl: function(input) { var i, output = Array(input.length >> 2); for(i = 0; i < output.length; ++i) { output[i] = 0; } for (i = 0; i < input.length * 8; i += 8) { output[i>>5] |= (input.charCodeAt(i / 8) & 0xFF) << (i%32); } return output; }, /* Convert an array of little-endian words to a string. */ binl2rstr: function(input) { var i, output = ""; for (i = 0; i < input.length * 32; i += 8) { output += String.fromCharCode((input[i>>5] >>> (i % 32)) & 0xFF); } return output; }, /* Calculate the MD5 of an array of little-endian words, and a bit * length. */ binl_md5: function(x, len) { /* append padding */ x[len >> 5] |= 0x80 << ((len) % 32); x[(((len + 64) >>> 9) << 4) + 14] = len; var i, olda, oldb, oldc, oldd, a = 1732584193, b = -271733879, c = -1732584194, d = 271733878; for (i = 0; i < x.length; i += 16) { olda = a; oldb = b; oldc = c; oldd = d; a = this.md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936); d = this.md5_ff(d, a, b, c, x[i+ 1], 12, -389564586); c = this.md5_ff(c, d, a, b, x[i+ 2], 17, 606105819); b = this.md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330); a = this.md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897); d = this.md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426); c = this.md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341); b = this.md5_ff(b, c, d, a, x[i+ 7], 22, -45705983); a = this.md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416); d = this.md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417); c = this.md5_ff(c, d, a, b, x[i+10], 17, -42063); b = this.md5_ff(b, c, d, a, x[i+11], 22, -1990404162); a = this.md5_ff(a, b, c, d, x[i+12], 7 , 1804603682); d = this.md5_ff(d, a, b, c, x[i+13], 12, -40341101); c = this.md5_ff(c, d, a, b, x[i+14], 17, -1502002290); b = this.md5_ff(b, c, d, a, x[i+15], 22, 1236535329); a = this.md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510); d = this.md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632); c = this.md5_gg(c, d, a, b, x[i+11], 14, 643717713); b = this.md5_gg(b, c, d, a, x[i+ 0], 20, -373897302); a = this.md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691); d = this.md5_gg(d, a, b, c, x[i+10], 9 , 38016083); c = this.md5_gg(c, d, a, b, x[i+15], 14, -660478335); b = this.md5_gg(b, c, d, a, x[i+ 4], 20, -405537848); a = this.md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438); d = this.md5_gg(d, a, b, c, x[i+14], 9 , -1019803690); c = this.md5_gg(c, d, a, b, x[i+ 3], 14, -187363961); b = this.md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501); a = this.md5_gg(a, b, c, d, x[i+13], 5 , -1444681467); d = this.md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784); c = this.md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473); b = this.md5_gg(b, c, d, a, x[i+12], 20, -1926607734); a = this.md5_hh(a, b, c, d, x[i+ 5], 4 , -378558); d = this.md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463); c = this.md5_hh(c, d, a, b, x[i+11], 16, 1839030562); b = this.md5_hh(b, c, d, a, x[i+14], 23, -35309556); a = this.md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060); d = this.md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353); c = this.md5_hh(c, d, a, b, x[i+ 7], 16, -155497632); b = this.md5_hh(b, c, d, a, x[i+10], 23, -1094730640); a = this.md5_hh(a, b, c, d, x[i+13], 4 , 681279174); d = this.md5_hh(d, a, b, c, x[i+ 0], 11, -358537222); c = this.md5_hh(c, d, a, b, x[i+ 3], 16, -722521979); b = this.md5_hh(b, c, d, a, x[i+ 6], 23, 76029189); a = this.md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487); d = this.md5_hh(d, a, b, c, x[i+12], 11, -421815835); c = this.md5_hh(c, d, a, b, x[i+15], 16, 530742520); b = this.md5_hh(b, c, d, a, x[i+ 2], 23, -995338651); a = this.md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844); d = this.md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415); c = this.md5_ii(c, d, a, b, x[i+14], 15, -1416354905); b = this.md5_ii(b, c, d, a, x[i+ 5], 21, -57434055); a = this.md5_ii(a, b, c, d, x[i+12], 6 , 1700485571); d = this.md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606); c = this.md5_ii(c, d, a, b, x[i+10], 15, -1051523); b = this.md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799); a = this.md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359); d = this.md5_ii(d, a, b, c, x[i+15], 10, -30611744); c = this.md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380); b = this.md5_ii(b, c, d, a, x[i+13], 21, 1309151649); a = this.md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070); d = this.md5_ii(d, a, b, c, x[i+11], 10, -1120210379); c = this.md5_ii(c, d, a, b, x[i+ 2], 15, 718787259); b = this.md5_ii(b, c, d, a, x[i+ 9], 21, -343485551); a = this.safe_add(a, olda); b = this.safe_add(b, oldb); c = this.safe_add(c, oldc); d = this.safe_add(d, oldd); } return Array(a, b, c, d); }, /* These functions implement the four basic operations the algorithm * uses. */ md5_cmn: function(q, a, b, x, s, t) { return this.safe_add(this.bit_rol(this.safe_add(this.safe_add(a, q), this.safe_add(x, t)), s),b); }, md5_ff: function(a, b, c, d, x, s, t) { return this.md5_cmn((b & c) | ((~b) & d), a, b, x, s, t); }, md5_gg: function(a, b, c, d, x, s, t) { return this.md5_cmn((b & d) | (c & (~d)), a, b, x, s, t); }, md5_hh: function(a, b, c, d, x, s, t) { return this.md5_cmn(b ^ c ^ d, a, b, x, s, t); }, md5_ii: function(a, b, c, d, x, s, t) { return this.md5_cmn(c ^ (b | (~d)), a, b, x, s, t); }, /* Add integers, wrapping at 2^32. This uses 16-bit operations internally * to work around bugs in some JS interpreters. */ safe_add: function(x, y) { var lsw = (x & 0xFFFF) + (y & 0xFFFF), msw = (x >> 16) + (y >> 16) + (lsw >> 16); return (msw << 16) | (lsw & 0xFFFF); }, /* Bitwise rotate a 32-bit number to the left. */ bit_rol: function(num, cnt) { return (num << cnt) | (num >>> (32 - cnt)); } }; tmpjWNuGb/horde-5.1.5/js/problem.js0000644000175000017500000000102112233761316016762 0ustar mathieumathieuvar HordeProblem = { onSubmit: function(e) { if ($F('subject').empty()) { window.alert(this.summary_text); $('subject').focus(); e.stop(); } else if ($F('message').empty()) { window.alert(this.message_text); $('message').focus(); e.stop(); } else { $('actionID').setValue('send_problem_report'); } } }; $('problem-report').observe('click', HordeProblem.onSubmit.bindAsEventListener(HordeProblem)); tmpjWNuGb/horde-5.1.5/js/plupload/0000755000175000017500000000000012262230550016603 5ustar mathieumathieutmpjWNuGb/horde-5.1.5/js/plupload/plupload.html5.js0000644000175000017500000012037412233761316022027 0ustar mathieumathieu/** * plupload.html5.js * * Copyright 2009, Moxiecode Systems AB * Released under GPL License. * * License: http://www.plupload.com/license * Contributing: http://www.plupload.com/contributing */ // JSLint defined globals /*global plupload:false, File:false, window:false, atob:false, FormData:false, FileReader:false, ArrayBuffer:false, Uint8Array:false, BlobBuilder:false, unescape:false */ (function(window, document, plupload, undef) { var html5files = {}, // queue of original File objects fakeSafariDragDrop; function readFileAsDataURL(file, callback) { var reader; // Use FileReader if it's available if ("FileReader" in window) { reader = new FileReader(); reader.readAsDataURL(file); reader.onload = function() { callback(reader.result); }; } else { return callback(file.getAsDataURL()); } } function readFileAsBinary(file, callback) { var reader; // Use FileReader if it's available if ("FileReader" in window) { reader = new FileReader(); reader.readAsBinaryString(file); reader.onload = function() { callback(reader.result); }; } else { return callback(file.getAsBinary()); } } function scaleImage(file, resize, mime, callback) { var canvas, context, img, scale, up = this; readFileAsDataURL(html5files[file.id], function(data) { // Setup canvas and context canvas = document.createElement("canvas"); canvas.style.display = 'none'; document.body.appendChild(canvas); context = canvas.getContext('2d'); // Load image img = new Image(); img.onerror = img.onabort = function() { // Failed to load, the image may be invalid callback({success : false}); }; img.onload = function() { var width, height, percentage, jpegHeaders, exifParser; if (!resize['width']) { resize['width'] = img.width; } if (!resize['height']) { resize['height'] = img.height; } scale = Math.min(resize.width / img.width, resize.height / img.height); if (scale < 1 || (scale === 1 && mime === 'image/jpeg')) { width = Math.round(img.width * scale); height = Math.round(img.height * scale); // Scale image and canvas canvas.width = width; canvas.height = height; context.drawImage(img, 0, 0, width, height); // Preserve JPEG headers if (mime === 'image/jpeg') { jpegHeaders = new JPEG_Headers(atob(data.substring(data.indexOf('base64,') + 7))); if (jpegHeaders['headers'] && jpegHeaders['headers'].length) { exifParser = new ExifParser(); if (exifParser.init(jpegHeaders.get('exif')[0])) { // Set new width and height exifParser.setExif('PixelXDimension', width); exifParser.setExif('PixelYDimension', height); // Update EXIF header jpegHeaders.set('exif', exifParser.getBinary()); // trigger Exif events only if someone listens to them if (up.hasEventListener('ExifData')) { up.trigger('ExifData', file, exifParser.EXIF()); } if (up.hasEventListener('GpsData')) { up.trigger('GpsData', file, exifParser.GPS()); } } } if (resize['quality']) { // Try quality property first try { data = canvas.toDataURL(mime, resize['quality'] / 100); } catch (e) { data = canvas.toDataURL(mime); } } } else { data = canvas.toDataURL(mime); } // Remove data prefix information and grab the base64 encoded data and decode it data = data.substring(data.indexOf('base64,') + 7); data = atob(data); // Restore JPEG headers if applicable if (jpegHeaders && jpegHeaders['headers'] && jpegHeaders['headers'].length) { data = jpegHeaders.restore(data); jpegHeaders.purge(); // free memory } // Remove canvas and execute callback with decoded image data canvas.parentNode.removeChild(canvas); callback({success : true, data : data}); } else { // Image does not need to be resized callback({success : false}); } }; img.src = data; }); } /** * HMTL5 implementation. This runtime supports these features: dragdrop, jpgresize, pngresize. * * @static * @class plupload.runtimes.Html5 * @extends plupload.Runtime */ plupload.runtimes.Html5 = plupload.addRuntime("html5", { /** * Returns a list of supported features for the runtime. * * @return {Object} Name/value object with supported features. */ getFeatures : function() { var xhr, hasXhrSupport, hasProgress, canSendBinary, dataAccessSupport, sliceSupport; hasXhrSupport = hasProgress = dataAccessSupport = sliceSupport = false; if (window.XMLHttpRequest) { xhr = new XMLHttpRequest(); hasProgress = !!xhr.upload; hasXhrSupport = !!(xhr.sendAsBinary || xhr.upload); } // Check for support for various features if (hasXhrSupport) { canSendBinary = !!(xhr.sendAsBinary || (window.Uint8Array && window.ArrayBuffer)); // Set dataAccessSupport only for Gecko since BlobBuilder and XHR doesn't handle binary data correctly dataAccessSupport = !!(File && (File.prototype.getAsDataURL || window.FileReader) && canSendBinary); sliceSupport = !!(File && (File.prototype.mozSlice || File.prototype.webkitSlice || File.prototype.slice)); } // sniff out Safari for Windows and fake drag/drop fakeSafariDragDrop = plupload.ua.safari && plupload.ua.windows; return { html5: hasXhrSupport, // This is a special one that we check inside the init call dragdrop: (function() { // this comes directly from Modernizr: http://www.modernizr.com/ var div = document.createElement('div'); return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div); }()), jpgresize: dataAccessSupport, pngresize: dataAccessSupport, multipart: dataAccessSupport || !!window.FileReader || !!window.FormData, canSendBinary: canSendBinary, // gecko 2/5/6 can't send blob with FormData: https://bugzilla.mozilla.org/show_bug.cgi?id=649150 cantSendBlobInFormData: !!(plupload.ua.gecko && window.FormData && window.FileReader && !FileReader.prototype.readAsArrayBuffer), progress: hasProgress, chunks: sliceSupport, // Safari on Windows has problems when selecting multiple files multi_selection: !(plupload.ua.safari && plupload.ua.windows), // WebKit and Gecko 2+ can trigger file dialog progrmmatically triggerDialog: (plupload.ua.gecko && window.FormData || plupload.ua.webkit) }; }, /** * Initializes the upload runtime. * * @method init * @param {plupload.Uploader} uploader Uploader instance that needs to be initialized. * @param {function} callback Callback to execute when the runtime initializes or fails to initialize. If it succeeds an object with a parameter name success will be set to true. */ init : function(uploader, callback) { var features; function addSelectedFiles(native_files) { var file, i, files = [], id, fileNames = {}; // Add the selected files to the file queue for (i = 0; i < native_files.length; i++) { file = native_files[i]; // Safari on Windows will add first file from dragged set multiple times // @see: https://bugs.webkit.org/show_bug.cgi?id=37957 if (fileNames[file.name]) { continue; } fileNames[file.name] = true; // Store away gears blob internally id = plupload.guid(); html5files[id] = file; // Expose id, name and size files.push(new plupload.File(id, file.fileName || file.name, file.fileSize || file.size)); // fileName / fileSize depricated } // Trigger FilesAdded event if we added any if (files.length) { uploader.trigger("FilesAdded", files); } } // No HTML5 upload support features = this.getFeatures(); if (!features.html5) { callback({success : false}); return; } uploader.bind("Init", function(up) { var inputContainer, browseButton, mimes = [], i, y, filters = up.settings.filters, ext, type, container = document.body, inputFile; // Create input container and insert it at an absolute position within the browse button inputContainer = document.createElement('div'); inputContainer.id = up.id + '_html5_container'; plupload.extend(inputContainer.style, { position : 'absolute', background : uploader.settings.shim_bgcolor || 'transparent', width : '100px', height : '100px', overflow : 'hidden', zIndex : 99999, opacity : uploader.settings.shim_bgcolor ? '' : 0 // Force transparent if bgcolor is undefined }); inputContainer.className = 'plupload html5'; if (uploader.settings.container) { container = document.getElementById(uploader.settings.container); if (plupload.getStyle(container, 'position') === 'static') { container.style.position = 'relative'; } } container.appendChild(inputContainer); // Convert extensions to mime types list no_type_restriction: for (i = 0; i < filters.length; i++) { ext = filters[i].extensions.split(/,/); for (y = 0; y < ext.length; y++) { // If there's an asterisk in the list, then accept attribute is not required if (ext[y] === '*') { mimes = []; break no_type_restriction; } type = plupload.mimeTypes[ext[y]]; if (type) { mimes.push(type); } } } // Insert the input inside the input container inputContainer.innerHTML = ''; inputContainer.scrollTop = 100; inputFile = document.getElementById(uploader.id + '_html5'); if (up.features.triggerDialog) { plupload.extend(inputFile.style, { position: 'absolute', width: '100%', height: '100%' }); } else { // shows arrow cursor instead of the text one, bit more logical plupload.extend(inputFile.style, { cssFloat: 'right', styleFloat: 'right' }); } inputFile.onchange = function() { // Add the selected files from file input addSelectedFiles(this.files); // Clearing the value enables the user to select the same file again if they want to this.value = ''; }; /* Since we have to place input[type=file] on top of the browse_button for some browsers (FF, Opera), browse_button loses interactivity, here we try to neutralize this issue highlighting browse_button with a special classes TODO: needs to be revised as things will change */ browseButton = document.getElementById(up.settings.browse_button); if (browseButton) { var hoverClass = up.settings.browse_button_hover, activeClass = up.settings.browse_button_active, topElement = up.features.triggerDialog ? browseButton : inputContainer; if (hoverClass) { plupload.addEvent(topElement, 'mouseover', function() { plupload.addClass(browseButton, hoverClass); }, up.id); plupload.addEvent(topElement, 'mouseout', function() { plupload.removeClass(browseButton, hoverClass); }, up.id); } if (activeClass) { plupload.addEvent(topElement, 'mousedown', function() { plupload.addClass(browseButton, activeClass); }, up.id); plupload.addEvent(document.body, 'mouseup', function() { plupload.removeClass(browseButton, activeClass); }, up.id); } // Route click event to the input[type=file] element for supporting browsers if (up.features.triggerDialog) { plupload.addEvent(browseButton, 'click', function(e) { document.getElementById(up.id + '_html5').click(); e.preventDefault(); }, up.id); } } }); // Add drop handler uploader.bind("PostInit", function() { var dropElm = document.getElementById(uploader.settings.drop_element); if (dropElm) { // Lets fake drag/drop on Safari by moving a input type file in front of the mouse pointer when we drag into the drop zone // TODO: Remove this logic once Safari has official drag/drop support if (fakeSafariDragDrop) { plupload.addEvent(dropElm, 'dragenter', function(e) { var dropInputElm, dropPos, dropSize; // Get or create drop zone dropInputElm = document.getElementById(uploader.id + "_drop"); if (!dropInputElm) { dropInputElm = document.createElement("input"); dropInputElm.setAttribute('type', "file"); dropInputElm.setAttribute('id', uploader.id + "_drop"); dropInputElm.setAttribute('multiple', 'multiple'); plupload.addEvent(dropInputElm, 'change', function() { // Add the selected files from file input addSelectedFiles(this.files); // Remove input element plupload.removeEvent(dropInputElm, 'change', uploader.id); dropInputElm.parentNode.removeChild(dropInputElm); }, uploader.id); dropElm.appendChild(dropInputElm); } dropPos = plupload.getPos(dropElm, document.getElementById(uploader.settings.container)); dropSize = plupload.getSize(dropElm); if (plupload.getStyle(dropElm, 'position') === 'static') { plupload.extend(dropElm.style, { position : 'relative' }); } plupload.extend(dropInputElm.style, { position : 'absolute', display : 'block', top : 0, left : 0, width : dropSize.w + 'px', height : dropSize.h + 'px', opacity : 0 }); }, uploader.id); return; } // Block browser default drag over plupload.addEvent(dropElm, 'dragover', function(e) { e.preventDefault(); }, uploader.id); // Attach drop handler and grab files plupload.addEvent(dropElm, 'drop', function(e) { var dataTransfer = e.dataTransfer; // Add dropped files if (dataTransfer && dataTransfer.files) { addSelectedFiles(dataTransfer.files); } e.preventDefault(); }, uploader.id); } }); uploader.bind("Refresh", function(up) { var browseButton, browsePos, browseSize, inputContainer, zIndex; browseButton = document.getElementById(uploader.settings.browse_button); if (browseButton) { browsePos = plupload.getPos(browseButton, document.getElementById(up.settings.container)); browseSize = plupload.getSize(browseButton); inputContainer = document.getElementById(uploader.id + '_html5_container'); plupload.extend(inputContainer.style, { top : browsePos.y + 'px', left : browsePos.x + 'px', width : browseSize.w + 'px', height : browseSize.h + 'px' }); // for WebKit place input element underneath the browse button and route onclick event // TODO: revise when browser support for this feature will change if (uploader.features.triggerDialog) { if (plupload.getStyle(browseButton, 'position') === 'static') { plupload.extend(browseButton.style, { position : 'relative' }); } zIndex = parseInt(plupload.getStyle(browseButton, 'z-index'), 10); if (isNaN(zIndex)) { zIndex = 0; } plupload.extend(browseButton.style, { zIndex : zIndex }); plupload.extend(inputContainer.style, { zIndex : zIndex - 1 }); } } }); uploader.bind("UploadFile", function(up, file) { var settings = up.settings, nativeFile, resize; function w3cBlobSlice(blob, start, end) { var blobSlice; if (File.prototype.slice) { try { blob.slice(); // depricated version will throw WRONG_ARGUMENTS_ERR exception return blob.slice(start, end); } catch (e) { // depricated slice method return blob.slice(start, end - start); } // slice method got prefixed: https://bugzilla.mozilla.org/show_bug.cgi?id=649672 } else if (blobSlice = File.prototype.webkitSlice || File.prototype.mozSlice) { return blobSlice.call(blob, start, end); } else { return null; // or throw some exception } } function sendBinaryBlob(blob) { var chunk = 0, loaded = 0, fr = ("FileReader" in window) ? new FileReader : null; function uploadNextChunk() { var chunkBlob, br, chunks, args, chunkSize, curChunkSize, mimeType, url = up.settings.url; function prepareAndSend(bin) { var multipartDeltaSize = 0, xhr = new XMLHttpRequest, upload = xhr.upload, boundary = '----pluploadboundary' + plupload.guid(), formData, dashdash = '--', crlf = '\r\n', multipartBlob = '' // Do we have upload progress support if (upload) { upload.onprogress = function(e) { file.loaded = Math.min(file.size, loaded + e.loaded - multipartDeltaSize); // Loaded can be larger than file size due to multipart encoding up.trigger('UploadProgress', file); }; } xhr.onreadystatechange = function() { var httpStatus, chunkArgs; if (xhr.readyState == 4) { // Getting the HTTP status might fail on some Gecko versions try { httpStatus = xhr.status; } catch (ex) { httpStatus = 0; } // Is error status if (httpStatus >= 400) { up.trigger('Error', { code : plupload.HTTP_ERROR, message : plupload.translate('HTTP Error.'), file : file, status : httpStatus }); } else { // Handle chunk response if (chunks) { chunkArgs = { chunk : chunk, chunks : chunks, response : xhr.responseText, status : httpStatus }; up.trigger('ChunkUploaded', file, chunkArgs); loaded += curChunkSize; // Stop upload if (chunkArgs.cancelled) { file.status = plupload.FAILED; return; } file.loaded = Math.min(file.size, (chunk + 1) * chunkSize); } else { file.loaded = file.size; } up.trigger('UploadProgress', file); bin = chunkBlob = formData = multipartBlob = null; // Free memory // Check if file is uploaded if (!chunks || ++chunk >= chunks) { file.status = plupload.DONE; up.trigger('FileUploaded', file, { response : xhr.responseText, status : httpStatus }); } else { // Still chunks left uploadNextChunk(); } } xhr = null; } }; // Build multipart request if (up.settings.multipart && features.multipart) { args.name = file.target_name || file.name; xhr.open("post", url, true); // Set custom headers plupload.each(up.settings.headers, function(value, name) { xhr.setRequestHeader(name, value); }); // if has FormData support like Chrome 6+, Safari 5+, Firefox 4, use it if (typeof(bin) !== 'string' && !!window.FormData) { formData = new FormData(); // Add multipart params plupload.each(plupload.extend(args, up.settings.multipart_params), function(value, name) { formData.append(name, value); }); // Add file and send it formData.append(up.settings.file_data_name, bin); xhr.send(formData); return; } // if no FormData we can still try to send it directly as last resort (see below) if (typeof(bin) === 'string') { // Trying to send the whole thing as binary... // multipart request xhr.setRequestHeader('Content-Type', 'multipart/form-data; boundary=' + boundary); // append multipart parameters plupload.each(plupload.extend(args, up.settings.multipart_params), function(value, name) { multipartBlob += dashdash + boundary + crlf + 'Content-Disposition: form-data; name="' + name + '"' + crlf + crlf; multipartBlob += unescape(encodeURIComponent(value)) + crlf; }); mimeType = plupload.mimeTypes[file.name.replace(/^.+\.([^.]+)/, '$1').toLowerCase()] || 'application/octet-stream'; // Build RFC2388 blob multipartBlob += dashdash + boundary + crlf + 'Content-Disposition: form-data; name="' + up.settings.file_data_name + '"; filename="' + unescape(encodeURIComponent(file.name)) + '"' + crlf + 'Content-Type: ' + mimeType + crlf + crlf + bin + crlf + dashdash + boundary + dashdash + crlf; multipartDeltaSize = multipartBlob.length - bin.length; bin = multipartBlob; if (xhr.sendAsBinary) { // Gecko xhr.sendAsBinary(bin); } else if (features.canSendBinary) { // WebKit with typed arrays support var ui8a = new Uint8Array(bin.length); for (var i = 0; i < bin.length; i++) { ui8a[i] = (bin.charCodeAt(i) & 0xff); } xhr.send(ui8a.buffer); } return; // will return from here only if shouldn't send binary } } // if no multipart, or last resort, send as binary stream url = plupload.buildUrl(up.settings.url, plupload.extend(args, up.settings.multipart_params)); xhr.open("post", url, true); xhr.setRequestHeader('Content-Type', 'application/octet-stream'); // Binary stream header // Set custom headers plupload.each(up.settings.headers, function(value, name) { xhr.setRequestHeader(name, value); }); xhr.send(bin); } // prepareAndSend // File upload finished if (file.status == plupload.DONE || file.status == plupload.FAILED || up.state == plupload.STOPPED) { return; } // Standard arguments args = {name : file.target_name || file.name}; // Only add chunking args if needed if (settings.chunk_size && file.size > settings.chunk_size && (features.chunks || typeof(blob) == 'string')) { // blob will be of type string if it was loaded in memory chunkSize = settings.chunk_size; chunks = Math.ceil(file.size / chunkSize); curChunkSize = Math.min(chunkSize, file.size - (chunk * chunkSize)); // Blob is string so we need to fake chunking, this is not // ideal since the whole file is loaded into memory if (typeof(blob) == 'string') { chunkBlob = blob.substring(chunk * chunkSize, chunk * chunkSize + curChunkSize); } else { // Slice the chunk chunkBlob = w3cBlobSlice(blob, chunk * chunkSize, chunk * chunkSize + curChunkSize); } // Setup query string arguments args.chunk = chunk; args.chunks = chunks; } else { curChunkSize = file.size; chunkBlob = blob; } // workaround Gecko 2,5,6 FormData+Blob bug: https://bugzilla.mozilla.org/show_bug.cgi?id=649150 if (typeof(chunkBlob) !== 'string' && fr && features.cantSendBlobInFormData && features.chunks && up.settings.chunk_size) {// Gecko 2,5,6 fr.onload = function() { prepareAndSend(fr.result); } fr.readAsBinaryString(chunkBlob); } else { prepareAndSend(chunkBlob); } } // Start uploading chunks uploadNextChunk(); } nativeFile = html5files[file.id]; // Resize image if it's a supported format and resize is enabled if (features.jpgresize && up.settings.resize && /\.(png|jpg|jpeg)$/i.test(file.name)) { scaleImage.call(up, file, up.settings.resize, /\.png$/i.test(file.name) ? 'image/png' : 'image/jpeg', function(res) { // If it was scaled send the scaled image if it failed then // send the raw image and let the server do the scaling if (res.success) { file.size = res.data.length; sendBinaryBlob(res.data); } else { sendBinaryBlob(nativeFile); } }); // if there's no way to slice file without preloading it in memory, preload it } else if (!features.chunks && features.jpgresize) { readFileAsBinary(nativeFile, sendBinaryBlob); } else { sendBinaryBlob(nativeFile); } }); uploader.bind('Destroy', function(up) { var name, element, container = document.body, elements = { inputContainer: up.id + '_html5_container', inputFile: up.id + '_html5', browseButton: up.settings.browse_button, dropElm: up.settings.drop_element }; // Unbind event handlers for (name in elements) { element = document.getElementById(elements[name]); if (element) { plupload.removeAllEvents(element, up.id); } } plupload.removeAllEvents(document.body, up.id); if (up.settings.container) { container = document.getElementById(up.settings.container); } // Remove mark-up container.removeChild(document.getElementById(elements.inputContainer)); }); callback({success : true}); } }); function BinaryReader() { var II = false, bin; // Private functions function read(idx, size) { var mv = II ? 0 : -8 * (size - 1), sum = 0, i; for (i = 0; i < size; i++) { sum |= (bin.charCodeAt(idx + i) << Math.abs(mv + i*8)); } return sum; } function putstr(segment, idx, length) { var length = arguments.length === 3 ? length : bin.length - idx - 1; bin = bin.substr(0, idx) + segment + bin.substr(length + idx); } function write(idx, num, size) { var str = '', mv = II ? 0 : -8 * (size - 1), i; for (i = 0; i < size; i++) { str += String.fromCharCode((num >> Math.abs(mv + i*8)) & 255); } putstr(str, idx, size); } // Public functions return { II: function(order) { if (order === undef) { return II; } else { II = order; } }, init: function(binData) { II = false; bin = binData; }, SEGMENT: function(idx, length, segment) { switch (arguments.length) { case 1: return bin.substr(idx, bin.length - idx - 1); case 2: return bin.substr(idx, length); case 3: putstr(segment, idx, length); break; default: return bin; } }, BYTE: function(idx) { return read(idx, 1); }, SHORT: function(idx) { return read(idx, 2); }, LONG: function(idx, num) { if (num === undef) { return read(idx, 4); } else { write(idx, num, 4); } }, SLONG: function(idx) { // 2's complement notation var num = read(idx, 4); return (num > 2147483647 ? num - 4294967296 : num); }, STRING: function(idx, size) { var str = ''; for (size += idx; idx < size; idx++) { str += String.fromCharCode(read(idx, 1)); } return str; } }; } function JPEG_Headers(data) { var markers = { 0xFFE1: { app: 'EXIF', name: 'APP1', signature: "Exif\0" }, 0xFFE2: { app: 'ICC', name: 'APP2', signature: "ICC_PROFILE\0" }, 0xFFED: { app: 'IPTC', name: 'APP13', signature: "Photoshop 3.0\0" } }, headers = [], read, idx, marker = undef, length = 0, limit; read = new BinaryReader(); read.init(data); // Check if data is jpeg if (read.SHORT(0) !== 0xFFD8) { return; } idx = 2; limit = Math.min(1048576, data.length); while (idx <= limit) { marker = read.SHORT(idx); // omit RST (restart) markers if (marker >= 0xFFD0 && marker <= 0xFFD7) { idx += 2; continue; } // no headers allowed after SOS marker if (marker === 0xFFDA || marker === 0xFFD9) { break; } length = read.SHORT(idx + 2) + 2; if (markers[marker] && read.STRING(idx + 4, markers[marker].signature.length) === markers[marker].signature) { headers.push({ hex: marker, app: markers[marker].app.toUpperCase(), name: markers[marker].name.toUpperCase(), start: idx, length: length, segment: read.SEGMENT(idx, length) }); } idx += length; } read.init(null); // free memory return { headers: headers, restore: function(data) { read.init(data); // Check if data is jpeg var jpegHeaders = new JPEG_Headers(data); if (!jpegHeaders['headers']) { return false; } // Delete any existing headers that need to be replaced for (var i = jpegHeaders['headers'].length; i > 0; i--) { var hdr = jpegHeaders['headers'][i - 1]; read.SEGMENT(hdr.start, hdr.length, '') } jpegHeaders.purge(); idx = read.SHORT(2) == 0xFFE0 ? 4 + read.SHORT(4) : 2; for (var i = 0, max = headers.length; i < max; i++) { read.SEGMENT(idx, 0, headers[i].segment); idx += headers[i].length; } return read.SEGMENT(); }, get: function(app) { var array = []; for (var i = 0, max = headers.length; i < max; i++) { if (headers[i].app === app.toUpperCase()) { array.push(headers[i].segment); } } return array; }, set: function(app, segment) { var array = []; if (typeof(segment) === 'string') { array.push(segment); } else { array = segment; } for (var i = ii = 0, max = headers.length; i < max; i++) { if (headers[i].app === app.toUpperCase()) { headers[i].segment = array[ii]; headers[i].length = array[ii].length; ii++; } if (ii >= array.length) break; } }, purge: function() { headers = []; read.init(null); } }; } function ExifParser() { // Private ExifParser fields var data, tags, offsets = {}, tagDescs; data = new BinaryReader(); tags = { tiff : { /* The image orientation viewed in terms of rows and columns. 1 - The 0th row is at the visual top of the image, and the 0th column is the visual left-hand side. 2 - The 0th row is at the visual top of the image, and the 0th column is the visual left-hand side. 3 - The 0th row is at the visual top of the image, and the 0th column is the visual right-hand side. 4 - The 0th row is at the visual bottom of the image, and the 0th column is the visual right-hand side. 5 - The 0th row is at the visual bottom of the image, and the 0th column is the visual left-hand side. 6 - The 0th row is the visual left-hand side of the image, and the 0th column is the visual top. 7 - The 0th row is the visual right-hand side of the image, and the 0th column is the visual top. 8 - The 0th row is the visual right-hand side of the image, and the 0th column is the visual bottom. 9 - The 0th row is the visual left-hand side of the image, and the 0th column is the visual bottom. */ 0x0112: 'Orientation', 0x8769: 'ExifIFDPointer', 0x8825: 'GPSInfoIFDPointer' }, exif : { 0x9000: 'ExifVersion', 0xA001: 'ColorSpace', 0xA002: 'PixelXDimension', 0xA003: 'PixelYDimension', 0x9003: 'DateTimeOriginal', 0x829A: 'ExposureTime', 0x829D: 'FNumber', 0x8827: 'ISOSpeedRatings', 0x9201: 'ShutterSpeedValue', 0x9202: 'ApertureValue' , 0x9207: 'MeteringMode', 0x9208: 'LightSource', 0x9209: 'Flash', 0xA402: 'ExposureMode', 0xA403: 'WhiteBalance', 0xA406: 'SceneCaptureType', 0xA404: 'DigitalZoomRatio', 0xA408: 'Contrast', 0xA409: 'Saturation', 0xA40A: 'Sharpness' }, gps : { 0x0000: 'GPSVersionID', 0x0001: 'GPSLatitudeRef', 0x0002: 'GPSLatitude', 0x0003: 'GPSLongitudeRef', 0x0004: 'GPSLongitude' } }; tagDescs = { 'ColorSpace': { 1: 'sRGB', 0: 'Uncalibrated' }, 'MeteringMode': { 0: 'Unknown', 1: 'Average', 2: 'CenterWeightedAverage', 3: 'Spot', 4: 'MultiSpot', 5: 'Pattern', 6: 'Partial', 255: 'Other' }, 'LightSource': { 1: 'Daylight', 2: 'Fliorescent', 3: 'Tungsten', 4: 'Flash', 9: 'Fine weather', 10: 'Cloudy weather', 11: 'Shade', 12: 'Daylight fluorescent (D 5700 - 7100K)', 13: 'Day white fluorescent (N 4600 -5400K)', 14: 'Cool white fluorescent (W 3900 - 4500K)', 15: 'White fluorescent (WW 3200 - 3700K)', 17: 'Standard light A', 18: 'Standard light B', 19: 'Standard light C', 20: 'D55', 21: 'D65', 22: 'D75', 23: 'D50', 24: 'ISO studio tungsten', 255: 'Other' }, 'Flash': { 0x0000: 'Flash did not fire.', 0x0001: 'Flash fired.', 0x0005: 'Strobe return light not detected.', 0x0007: 'Strobe return light detected.', 0x0009: 'Flash fired, compulsory flash mode', 0x000D: 'Flash fired, compulsory flash mode, return light not detected', 0x000F: 'Flash fired, compulsory flash mode, return light detected', 0x0010: 'Flash did not fire, compulsory flash mode', 0x0018: 'Flash did not fire, auto mode', 0x0019: 'Flash fired, auto mode', 0x001D: 'Flash fired, auto mode, return light not detected', 0x001F: 'Flash fired, auto mode, return light detected', 0x0020: 'No flash function', 0x0041: 'Flash fired, red-eye reduction mode', 0x0045: 'Flash fired, red-eye reduction mode, return light not detected', 0x0047: 'Flash fired, red-eye reduction mode, return light detected', 0x0049: 'Flash fired, compulsory flash mode, red-eye reduction mode', 0x004D: 'Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected', 0x004F: 'Flash fired, compulsory flash mode, red-eye reduction mode, return light detected', 0x0059: 'Flash fired, auto mode, red-eye reduction mode', 0x005D: 'Flash fired, auto mode, return light not detected, red-eye reduction mode', 0x005F: 'Flash fired, auto mode, return light detected, red-eye reduction mode' }, 'ExposureMode': { 0: 'Auto exposure', 1: 'Manual exposure', 2: 'Auto bracket' }, 'WhiteBalance': { 0: 'Auto white balance', 1: 'Manual white balance' }, 'SceneCaptureType': { 0: 'Standard', 1: 'Landscape', 2: 'Portrait', 3: 'Night scene' }, 'Contrast': { 0: 'Normal', 1: 'Soft', 2: 'Hard' }, 'Saturation': { 0: 'Normal', 1: 'Low saturation', 2: 'High saturation' }, 'Sharpness': { 0: 'Normal', 1: 'Soft', 2: 'Hard' }, // GPS related 'GPSLatitudeRef': { N: 'North latitude', S: 'South latitude' }, 'GPSLongitudeRef': { E: 'East longitude', W: 'West longitude' } }; function extractTags(IFD_offset, tags2extract) { var length = data.SHORT(IFD_offset), i, ii, tag, type, count, tagOffset, offset, value, values = [], hash = {}; for (i = 0; i < length; i++) { // Set binary reader pointer to beginning of the next tag offset = tagOffset = IFD_offset + 12 * i + 2; tag = tags2extract[data.SHORT(offset)]; if (tag === undef) { continue; // Not the tag we requested } type = data.SHORT(offset+=2); count = data.LONG(offset+=2); offset += 4; values = []; switch (type) { case 1: // BYTE case 7: // UNDEFINED if (count > 4) { offset = data.LONG(offset) + offsets.tiffHeader; } for (ii = 0; ii < count; ii++) { values[ii] = data.BYTE(offset + ii); } break; case 2: // STRING if (count > 4) { offset = data.LONG(offset) + offsets.tiffHeader; } hash[tag] = data.STRING(offset, count - 1); continue; case 3: // SHORT if (count > 2) { offset = data.LONG(offset) + offsets.tiffHeader; } for (ii = 0; ii < count; ii++) { values[ii] = data.SHORT(offset + ii*2); } break; case 4: // LONG if (count > 1) { offset = data.LONG(offset) + offsets.tiffHeader; } for (ii = 0; ii < count; ii++) { values[ii] = data.LONG(offset + ii*4); } break; case 5: // RATIONAL offset = data.LONG(offset) + offsets.tiffHeader; for (ii = 0; ii < count; ii++) { values[ii] = data.LONG(offset + ii*4) / data.LONG(offset + ii*4 + 4); } break; case 9: // SLONG offset = data.LONG(offset) + offsets.tiffHeader; for (ii = 0; ii < count; ii++) { values[ii] = data.SLONG(offset + ii*4); } break; case 10: // SRATIONAL offset = data.LONG(offset) + offsets.tiffHeader; for (ii = 0; ii < count; ii++) { values[ii] = data.SLONG(offset + ii*4) / data.SLONG(offset + ii*4 + 4); } break; default: continue; } value = (count == 1 ? values[0] : values); if (tagDescs.hasOwnProperty(tag) && typeof value != 'object') { hash[tag] = tagDescs[tag][value]; } else { hash[tag] = value; } } return hash; } function getIFDOffsets() { var Tiff = undef, idx = offsets.tiffHeader; // Set read order of multi-byte data data.II(data.SHORT(idx) == 0x4949); // Check if always present bytes are indeed present if (data.SHORT(idx+=2) !== 0x002A) { return false; } offsets['IFD0'] = offsets.tiffHeader + data.LONG(idx += 2); Tiff = extractTags(offsets['IFD0'], tags.tiff); offsets['exifIFD'] = ('ExifIFDPointer' in Tiff ? offsets.tiffHeader + Tiff.ExifIFDPointer : undef); offsets['gpsIFD'] = ('GPSInfoIFDPointer' in Tiff ? offsets.tiffHeader + Tiff.GPSInfoIFDPointer : undef); return true; } // At the moment only setting of simple (LONG) values, that do not require offset recalculation, is supported function setTag(ifd, tag, value) { var offset, length, tagOffset, valueOffset = 0; // If tag name passed translate into hex key if (typeof(tag) === 'string') { var tmpTags = tags[ifd.toLowerCase()]; for (hex in tmpTags) { if (tmpTags[hex] === tag) { tag = hex; break; } } } offset = offsets[ifd.toLowerCase() + 'IFD']; length = data.SHORT(offset); for (i = 0; i < length; i++) { tagOffset = offset + 12 * i + 2; if (data.SHORT(tagOffset) == tag) { valueOffset = tagOffset + 8; break; } } if (!valueOffset) return false; data.LONG(valueOffset, value); return true; } // Public functions return { init: function(segment) { // Reset internal data offsets = { tiffHeader: 10 }; if (segment === undef || !segment.length) { return false; } data.init(segment); // Check if that's APP1 and that it has EXIF if (data.SHORT(0) === 0xFFE1 && data.STRING(4, 5).toUpperCase() === "EXIF\0") { return getIFDOffsets(); } return false; }, EXIF: function() { var Exif; // Populate EXIF hash Exif = extractTags(offsets.exifIFD, tags.exif); // Fix formatting of some tags if (Exif.ExifVersion) { Exif.ExifVersion = String.fromCharCode( Exif.ExifVersion[0], Exif.ExifVersion[1], Exif.ExifVersion[2], Exif.ExifVersion[3] ); } return Exif; }, GPS: function() { var GPS; GPS = extractTags(offsets.gpsIFD, tags.gps); // iOS devices (and probably some others) do not put in GPSVersionID tag (why?..) if (GPS.GPSVersionID) { GPS.GPSVersionID = GPS.GPSVersionID.join('.'); } return GPS; }, setExif: function(tag, value) { // Right now only setting of width/height is possible if (tag !== 'PixelXDimension' && tag !== 'PixelYDimension') return false; return setTag('exif', tag, value); }, getBinary: function() { return data.SEGMENT(); } }; }; })(window, document, plupload); tmpjWNuGb/horde-5.1.5/js/plupload/plupload.html4.js0000644000175000017500000001066412233761316022026 0ustar mathieumathieu(function(d,a,b,c){function e(f){return a.getElementById(f)}b.runtimes.Html4=b.addRuntime("html4",{getFeatures:function(){return{multipart:true,triggerDialog:(b.ua.gecko&&d.FormData||b.ua.webkit)}},init:function(f,g){f.bind("Init",function(p){var j=a.body,n,h="javascript",k,x,q,z=[],r=/MSIE/.test(navigator.userAgent),t=[],m=p.settings.filters,o,l,s,w;no_type_restriction:for(o=0;o